반응형
이 글은 1주차에서 진행한 실습내용을 정리했습니다.
1. 인프라 구조
aws환경에서 네이티브 쿠버네티스를 사용했습니다.
2. 클러스터 구축
스터디에서 공유된 cloudformation템플릿을 사용하여 쿠버네티스를 구축했습니다. CNI는 calico를 사용했습니다.
$ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/cloudneta-k8s.yaml
$ aws cloudformation deploy --template-file cloudneta-k8s.yaml --stack-name myk8s --parameter-overrides KeyName=<key-pair이름> SgIngressCidr=<공인IP>
# 원격 접속 후, 쿠버네티스 클러스터 구성되면 calico 등 설치
$ cd /root/DOIK/1 && ./final.sh && cd $HOME
3. headless서비스
3.1 statefulset, headless서비스 배포
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
3.2 sts, headless service, pod, pvc확인
k get po,sts,svc,pvc
3.3 pv와 pvc고정 관계 확인
k describe pv | grep Source -A 3
3.4 headless서비스 dns질의
각 nginx파드 index.html에 hostname을 입력합니다.
for i in 0 2; do kubectl exec "web-$i" -- sh -c 'echo "$(hostname)-pv-test" > /usr/share/nginx/html/index.html'; done
netshoot파드를 실행합니다.
kubectl run -it --rm netdebug --image=nicolaka/netshoot --restart=Never -- zsh
netshoot파드에서 dns질의 결과를 확인합니다.
netshoot파드에서 srv타입 dns질의 결과를 확인합니다.
3.5 headless서비스를 이용한 파드접근
netshoot파드에서 headless서비스 srv레코드를 이용하여 파드에 접근합니다.
curl web-0.nginx.default.svc
curl web-1.nginx.default.svc
curl web-2.nginx.default.svc
4. 클러스터 삭제
cloudformation으로 쉽게 삭제할 수 있습니다.
$ aws cloudformation delete-stack --stack-name myk8s
반응형
'연재 시리즈' 카테고리의 다른 글
쿠버네티스 오퍼레이터 스터디 2주차 - mysql operator설치 (0) | 2022.06.04 |
---|---|
쿠버네티스 오퍼레이터 스터디 1주차 - Headless서비스 (0) | 2022.05.26 |
쿠버네티스 오퍼레이터 스터디 1주차 - statefulset이란 (0) | 2022.05.23 |
쿠버네티스 네트워크 스터디 7주차 - 7주차 과제 (2) | 2022.03.02 |
쿠버네티스 네트워크 스터디 부록: jsonpath로 clusterIP 조회 (0) | 2022.03.02 |