소개
게시글
질문&답변
안녕하세요 로드밸런서에 대해 궁금한게 있어서 질문드립니다.
아~ 그러니까 로드밸런서의 트래픽 분산의 역할은 서비스가 배분되어있는 워커 노드들에 대한 트래픽 분산이군요.. 제가 착각을 했었습니다. 서비스에 대한 트래픽을 위쪽 단에서 처리하는게 아니라 쿠버네티스 노드와 포드로 처리하는 건데 제가 단일노드에서 테스트하다보니 기본적인 원칙을 잊고있었네요. 덕분에 이해가 너무 쉬웠습니다. 항상 감사합니다 선생님 ^^!
- 1
- 6
- 837
질문&답변
안녕하세요 로드밸런서에 대해 궁금한게 있어서 질문드립니다.
위에 그림이 현재 제 상황입니다. 125.x.x.x:60000 >>> 192.168.0.20:8080 >>> nginx:80 으로 접속 가능합니다.
- 1
- 6
- 837
질문&답변
안녕하세요 로드밸런서에 대해 궁금한게 있어서 질문드립니다.
(사진)
- 1
- 6
- 837
질문&답변
추가 강의개설의향이 있으신가요??
ㅠㅠ 너무 아쉽네요 좋은강의 감사합니다!
- 1
- 2
- 192
질문&답변
질문입니다.
감사합니다! 무슨원리인지는 모르겠지만 말씀하신대로 했더니 해결했습니다! print에 flush하나만 적용했을 뿐인데 참 신기하네요... 쿠버네티스에 대한 문제가 아니었네요... 너무너무 감사합니다!
- 1
- 9
- 348
질문&답변
질문입니다.
네 맞습니다! ㅠㅠ 문제는 로컬에서 했을 때는 잘 되는데 쿠버네티스상에 올리니까 안되는게 문제입니다 ㅠㅠ
- 1
- 9
- 348
질문&답변
질문입니다.
우선 코드에서 extraction1 으로 request를 보내셨는데 1과 2 는 예전에 실험한 get method할 때 쓰던 url입니다. extraction3가 post url입니다. 리퀘스트 데이터는 다소 복잡합니다. 총 세 개의 데이터를 보내는데 carlist = json.dumps(carList, cls=NumpyEncoder) cardataframe = df_service.to_json() cardict = json.dumps(col_dict) data = {'carlist':carlist, 'cardataframe':cardataframe, 'cardict':cardict} res = requests.post('http://extraction-svc:3000/extraction3', data=data) #res = requests.post('http://127.0.0.1:3000/extraction3', data=data) 이런식으로 보냅니다. carllist는 list형식이구요 cardataframe은 dataframe형식 cardict은 딕셔너리 형식입니다. 외부의 DB에서 쿼리해 온 데이터를 전송하고 있습니다. 이런식으로 파일을 실행하면 올바르게 실행이 되었다면 웹서버 쪽에서는 제가 전송된 데이터를 확인할 수 있는 print문을 넣어놨기 때문에 ["01225797283", "01225797281", "01225797051", "01225797289", "01225797226", "01225797182", "01225797272", "01225797057", "01225797282", "01225797121", "01225797185", "01225797047", "01225797285", "01225797009", "01225797044", "01225797038", "01225797032", "01225797251", "01225797239"] args =========== 1 / 19 calc_01225797283 =========== =========== 2 / 19 calc_01225797281 =========== =========== 3 / 19 calc_01225797051 =========== =========== 4 / 19 calc_01225797289 =========== =========== 5 / 19 calc_01225797226 =========== =========== 6 / 19 calc_01225797182 =========== =========== 7 / 19 calc_01225797272 =========== =========== 8 / 19 calc_01225797057 =========== =========== 9 / 19 calc_01225797282 =========== =========== 10 / 19 calc_01225797121 =========== =========== 11 / 19 calc_01225797185 =========== =========== 12 / 19 calc_01225797047 =========== =========== 13 / 19 calc_01225797285 =========== =========== 14 / 19 calc_01225797009 =========== =========== 15 / 19 calc_01225797044 =========== =========== 16 / 19 calc_01225797038 =========== =========== 17 / 19 calc_01225797032 =========== =========== 18 / 19 calc_01225797251 =========== =========== 19 / 19 calc_01225797239 =========== 이런 식으로 메시지가 출력되어야합니다. 실행시키는 쪽에서는 query time: 132.73867535591125 sec request success 이런식으로 메시지가 출력이 됩니다. 친절한 답변 너무 감사합니다. 막막하던 와중에 큰 도움이 되주셔서 감사합니다.
- 1
- 9
- 348
질문&답변
질문입니다.
친절한 답변감사합니다. 송구스럽습니다만 yaml 파일을 한 번 첨부해봅니다. 이건 data를 전송하는 python파일을 실행시키는 pod를 실행시키는 job에 관한 yaml파일입니다. ``` apiVersion: batch/v1 kind: Job metadata: name: analysis-mongo spec: template: metadata: labels: app: analysis-mongo spec: containers: - name: analysis image: (이미지는 개인적인 이유로 삭제하겠습니다.) ports: - containerPort: 80 restartPolicy: Never ``` 밑에 해당 yaml파일은 flask웹서버를 실행시키는 Deployment에 관한 yaml파일입니다. 서비스에 관한 것도 같이 적혀있구요 서비스에대한 port를 3000으로 열었고 타겟 port도 pod의 port번호인 3000으로 연결해주었습니다. ``` apiVersion: apps/v1 kind: Deployment metadata: name: analysis-extraction spec: selector: matchLabels: app: analysis-extraction replicas: 1 template: metadata: labels: app: analysis-extraction spec: containers: - name: analysis image: (이미지는 개인적인 이유로 삭제하겠습니다.) ports: - containerPort: 3000 --- apiVersion: v1 kind: Service metadata: name: extraction-svc spec: type: ClusterIP selector: app: analysis-extraction ports: - port: 3000 targetPort: 3000 ``` dockerfile에 port expose한 부분에 문제가 있을까 싶어 확인해봤지만 알맞게 expose 3000으로 되어있었습니다. 로컬에서 127.0.0.1:3000으로 요청을 보내면 post메소드를 처리하는 과정이 올바르게 수행되는데 쿠버네티스 상에서 서비스 명으로 요청을 보내면 post메소드를 받는다는 응답코드 200은 return이 되지만 안에 내용이 실행되지가 않습니다. 긴 글 읽어주셔서 감사합니다.
- 1
- 9
- 348
질문&답변
Replica Set에서 matchLabels와 matchExpressions을 사용할 때
좋은 답변 감사합니다! 결론적으로 강의에서 설명해주신 예제는 설명을 위해를 적어두신거군요 항상 좋은 강의 감사합니다.
- 1
- 2
- 310
질문&답변
kubectl 에러
저도 저 에러로 한참 고생한 적이 있는데요. 여러가지 방법이 있겠지만 쿠버네티스가 옳바르게 설치되어있다는 가정하에 제가 사용한 방법은 1) mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 일반 사용자 권한에 추가 하는 방법 2) export KUBECONFIG=/etc/kubernetes/admin.conf root권한에서 환경변수 등록 3) docker rm $(docker ps -a -q) 를 사용하여 컨테이너를 다 지우거나 systemctl restart kubelet 이라던가 각종 구글링해서 나온결과를 적용해봤었습니다.
- 1
- 3
- 18K