k8s 미 러 버 전 을 업데이트 하 는 세 가지 방법

4870 단어
1. 지식 준비
미 러 버 전 업데이트 는 k8s 일상 사용 에서 매우 흔히 볼 수 있 는 작업 으로 본 고 는 주로 업데이트 소개 의 세 가지 방법 을 소개 한다.
환경 준비
구성 요소
판본
OS
Ubuntu 18.04.1 LTS
docker
18.06.0-ce
3. 거울 준비
먼저 2 개의 서로 다른 버 전의 미 러 를 준비 하여 테스트 에 사용 합 니 다. (이미 아 리 클 라 우 드 에 2 개의 서로 다른 버 전의 nginx 미 러 를 만 들 었 습 니 다)
docker pull registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1
docker pull registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v2

이 두 거울 은 버 전 번호 만 다 르 고 다른 것 은 모두 같다.
root@k8s-master:~# docker run -d --rm -p 10080:80 nginx:v1
e88097841c5feef92e4285a2448b943934ade5d86412946bc8d86e262f80a050
root@k8s-master:~# curl http://127.0.0.1:10080
----------
version: v1
hostname: f5189a5d3ad3

4. 미 러 를 업데이트 하 는 세 가지 방법
테스트 에 사용 할 Yml 파일 을 먼저 준비 합 니 다:
root@k8s-master:~# more image_update.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: image-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: image-update
    spec:
      containers:
      - name: nginx
        image: registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1
        imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
    selector:
      app: image-update
    ports:
    - protocol: TCP
      port: 10080
      targetPort: 80

간단하게 검증 하기:
root@k8s-master:~# kubectl apply -f image_update.yaml
deployment.extensions "image-deployment" created
service "nginx-service" created
root@k8s-master:~# kubectl get svc
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
nginx-service   ClusterIP   10.254.240.225           10080/TCP   1m
root@k8s-master:~# kubectl get pod  -owide
NAME                                READY     STATUS    RESTARTS   AGE       IP              NODE
image-deployment-58b646ffb6-d4sl7   1/1       Running   0          1m        10.10.169.131   k8s-node2
root@k8s-master:~# curl http://10.254.240.225:10080
----------
version: v1
hostname: image-deployment-58b646ffb6-d4sl7

정상적으로 작 동 하 였 으 며, 현재 버 전 은 v1 입 니 다.
거울 을 수정 하 는 방법 을 소개 한다.
(1) 프로필 수정
이게 제일 많이 쓰 는 방법 인 것 같 아 요.
프로필 을 수정 하고 nginx:v1nginx:v2 로 변경 합 니 다.
root@k8s-master:~# sed -i 's/nginx:v1/nginx:v2/g' image_update.yaml

프로필 적용:
root@k8s-master:~# kubectl apply -f image_update.yaml
deployment.extensions "image-deployment" configured
service "nginx-service" unchanged
root@k8s-master:~# kubectl get pod  -owide
NAME                                READY     STATUS              RESTARTS   AGE       IP              NODE
image-deployment-55cb946d47-7tzp8   0/1       ContainerCreating   0          16s                 k8s-node1
image-deployment-58b646ffb6-d4sl7   1/1       Terminating         0          11m       10.10.169.131   k8s-node2

잠시 기다 린 후 v2 버 전 ready 후
root@k8s-master:~# kubectl get pod  -owide
NAME                                READY     STATUS    RESTARTS   AGE       IP              NODE
image-deployment-55cb946d47-7tzp8   1/1       Running   0          1m        10.10.36.119    k8s-node1
root@k8s-master:~# curl http://10.254.240.225:10080
----------
version: v2
hostname: image-deployment-55cb946d47-7tzp8

v2 로 업데이트 성공
(2) 패 치 명령 사용
먼저 deployment 찾기:
root@k8s-master:~# kubectl get deploy
NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
image-deployment   1         1         1            1           20m

패 치 업데이트:
root@k8s-master:~# kubectl patch deployment image-deployment --patch '{"spec": {"template": {"spec": {"containers": [{"name": "nginx","image":"registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v1"}]}}}}'
deployment.extensions "image-deployment" patched

잠시 기다 린 후:
root@k8s-master:~# curl http://10.254.240.225:10080
----------
version: v1
hostname: image-deployment-58b646ffb6-hbzk9

패 치 업데이트 후 미 러 버 전 v1 업데이트
(3) set image 명령 사용
set image 명령 을 사용 하여 미 러 버 전 을 v2 로 업데이트 합 니 다.
root@k8s-master:~# kubectl set image deploy image-deployment *=registry.cn-beijing.aliyuncs.com/mrvolleyball/nginx:v2
root@k8s-master:~# curl http://10.254.240.225:10080
----------
version: v2
hostname: image-deployment-55cb946d47-zsdc6

잠시 기다 린 후에 버 전 은 v2 로 업데이트 되 었 습 니 다.
소결
● 본 고 는 미 러 버 전 을 업데이트 하 는 세 가지 방법 을 소개 했다. 각각 설정 파일 이다.patch 방식;set image 방식
이로써 본 고 는 하 재 를 소홀히 하고 학문 이 얕 으 며, 국 을 뿌리 고 물이 새 는 사람 이 있 으 니, 여러분 께 서 아낌없이 가르침 을 주 십시오.

좋은 웹페이지 즐겨찾기