StatefulSet 내용이 잘 이해가 되지 않습니다.
강사님 안녕하세요
StatefulSet 강의 중 궁금한 부분이 있어서 질문 드립니다.
먼저 ReplicaSet 부하 분산용으로 kubetm/app 가 3개 실행된다
replicas:3
spec:
containers:
- name: container
image: kubetm/app부하 분산용으로 kubetm/app 가 3개 실행된다는 내용은 이해를 하겠는데
StatefulSet 예제도
replicas:3
spec:
containers:
- name: container
image: kubetm/app이렇게 되어있더라구요
강의 내용처럼 containers에 예를 들어
image: kubetm/primary
image: kubetm/secondary
image: kubetm/albiter
각각 다른 역할을 하는 container가 실행되어야 하는거 아닌가요?
만약 그렇다고 하면 replicas 부분과 container 부분의 yaml 파일 작성이 실제로 어떻게 되는지 궁금합니다.
답변 1
1
안녕하세요.
하나의 App이 3가지 기능을 모두 할 수 있게 구현되는게 기본입니다.
MongoDB의 경우도 같은 이미지이지만 설정에 따라 자신이 하는 기능이 결정됩니다.
그렇기 때문에 이미지는 모두 동일하게 가고요,
해당 Pod별로 서로 다른 스크립트를 돌게 하는 방법은 다 다릅니다.
한가지 예를 들면, MongoDB 이미지에 기본 initScript가 포함되어 있을 수 있고, 이 스크립트가 돌아갈 때 prmary인지 secondary인지 인자를 줄 수 있겠죠.
그리고 인자를 주는 방법으로는 환경 변수를 가져올 수 있고,
StatefulSet의 경우 환경변수로 hostname이 mongodb-0, mongodb-1, mongodb-2 이런식으로 생기기 때문에, 만약 스크립트를 아래와 같이 줘서 자신이 어떤 역할을 해야하는지 결정 할 수가 있겠네요
if [[ $POD_NAME =~ (.*)-0$ ]]; then
echo "primary"
else
echo "secondary"
fi
fi
이런 스크립트를 Pod yaml파일에 넣을 수도 있고요. 솔루션마다 모두 틀립니다.
감사합니다.
yml 작성하다가 에러 발생해서 문의 드립니다.
0
39
2
설치수업중에 질문드립니다.
1
58
2
기초다지기 설치 문의드립니다.
1
106
4
HPA 부분 Auto Scaler 설치하는 링크가 없습니다!!
1
66
3
클러스터 초기화 및 팟 네트워크 세팅시 문제가 있습니다
1
102
1
환경 구성에 있어서 질문드립니다
1
92
2
configMap 파일생성
1
77
2
dashboard에서 pod 생성이 되지 않습니다.
1
78
2
nodePort 서비스 접근 Client sent an HTTP request to an HTTPS server
1
74
2
대시보드 화면이 달라요 ㅠㅠ
1
61
2
대시보드 접근이 안됩니다!
1
98
2
Ingress실습에 난관이 있습니다
1
67
2
master 노드에서 ssh 로그인 창이 안뜨는 오류
1
82
3
안녕하세요 일프로님 궁금한 거 있습니다
0
50
1
7강 마지막 대시 보드 출력에 관한 문제
1
57
2
Could not resolve host: externalname1; Unknown error
0
60
2
Failed to create pod sandbox
1
90
2
자료실을 못 찾겠습니다 ㅜ ㅡ ㅜ
0
57
2
0/3 nodes are available
1
57
2
Back-off restarting fail~~
1
100
4
쿠버네티스 대시보드 접속 문제
1
89
2
설치관련 질문입니다
1
116
2
raw.githubusercontent.com 에 대한 질문
1
138
2
worker노드 추가시에
1
68
1





