다음과 같은 deployment, service를 동작하십시오.
smlinux/nginx:blue 이미지를 가진 Pod 2개 배포version=blue를 사용하며 port는 8080 포트를 사용version=blue 레이블로 묶어 NodePort 타입의 서비스 port 80으로 운영smlinux/nginx:green 이미지를 가진 Pod 2개 배포version=green을 사용하며 port는 8080 포트를 사용version=green으로 변경# blue 배포 yaml 파일 생성
$ kubectl create deployment blue --image=smlinux/nginx:blue --replicas=2 --dry-run=client -o yaml > blue.yaml
# blue.yaml 파일을 엽니다.
$ vi blue.yaml
# blue 배포 적용
$ kubectl apply -f blue.yaml
# app-svc 서비스 생성 및 배포
$ kubectl expose deployment blue --type=NodePort --port=80 --target-port=8080 --name=app-svc
# 서비스 상태 확인
$ kubectl get svc app-svc -o wide
# green 배포 yaml 파일 생성
$ kubectl create deployment green --image=smlinux/nginx:green --replicas=2 --port=8080 --dry-run=client -o yaml > green.yaml
# green.yaml 파일을 엽니다.
$ vi green.yaml
# green 배포 적용
$ kubectl apply -f green.yaml
# 서비스 레이블 변경
$ kubectl edit svc app-svc
# selector:
# version: green
# 서비스 접근 확인
$ curl k8s-worker1:3XXXX
apiVersion: apps/v1
kind: Deployment
metadata:
name: blue
spec:
replicas: 2
selector:
matchLabels:
version: blue
template:
metadata:
labels:
version: blue
spec:
containers:
- name: nginx
image: smlinux/nginx:blue
ports:
- containerPort: 8080
apiVersion: apps/v1
kind: Deployment
metadata:
name: green
spec:
replicas: 2
selector:
matchLabels:
version: green
template:
metadata:
labels:
version: green
spec:
containers:
- name: nginx
image: smlinux/nginx:green
ports:
- containerPort: 8080
blue 배포 yaml 파일 생성
$ kubectl create deployment blue --image=smlinux/nginx:blue --replicas=2 --dry-run=client -o yaml > blue.yaml
kubectl create deployment 명령어를 사용하여 blue 배포의 yaml 템플릿을 생성합니다.blue.yaml 파일을 수정
$ vi blue.yaml
blue.yaml 파일을 열고 필요한 내용을 수정합니다.version=blue 레이블을 추가하고, 포트 설정을 8080으로 지정합니다.blue 배포 적용
$ kubectl apply -f blue.yaml
kubectl apply 명령어를 사용하여 blue.yaml 파일을 적용합니다.app-svc 서비스 생성 및 배포
$ kubectl expose deployment blue --type=NodePort --port=80 --target-port=8080 --name=app-svc
kubectl expose 명령어를 사용하여 blue 배포를 NodePort 타입의 서비스로 노출합니다.서비스 상태 확인
$ kubectl get svc app-svc -o wide
kubectl get svc 명령어로 서비스 상태를 확인합니다.green 배포 yaml 파일 생성
$ kubectl create deployment green --image=smlinux/nginx:green --replicas=2 --port=8080 --dry-run=client -o yaml > green.yaml
kubectl create deployment 명령어를 사용하여 green 배포의 yaml 템플릿을 생성합니다.green.yaml 파일을 수정
$ vi green.yaml
green.yaml 파일을 열고 필요한 내용을 수정합니다.version=green 레이블을 추가하고, 포트 설정을 8080으로 지정합니다.green 배포 적용
$ kubectl apply -f green.yaml
kubectl apply 명령어를 사용하여 green.yaml 파일을 적용합니다.서비스 레이블 변경
$ kubectl edit svc app-svc
kubectl edit svc 명령어를 사용하여 app-svc 서비스의 레이블을 version=green으로 변경합니다.서비스 접근 확인
$ curl k8s-worker1:3XXXX
curl 명령어를 사용하여 서비스가 정상적으로 작동하는지 확인합니다.