滚动更新
这里的更新指的不是更新deployment 本身的属性(label/ replicas)等, 而是更新POD 的container 的版本
更新方法通常有两种
- 是直接update deployment配置, 注意只有update了template中的内容(与container相关) 才会触发更新
- 用kubectl set image 命令
构造新版本的service
为了更好地测试,
我们构造1个新的版本的spring boot的service
更新很简单
直接更新pom里面的version就好, 由1.1.1 to 1.1.2
<groupId>com.home</groupId>
<artifactId>bq_api</artifactId>
<version>1.1.2</version>
<name>bq-api-service</name>
里面已经利用springboot actuator 构造了1个接口/actuator/info 可以获得当前版本
[gateman@manjaro-x13 ~]$ curl 127.0.0.1:8080/actuator/info
{
"app":"Sales API","version":"1.1.2","description":"This is a simple Spring Boot application to demonstrate the use of BigQuery in GCP."}
当把docker image 推送到GAR后
可以用下面命令确认
[gateman@manjaro-x13 ~]$ gcloud artifacts docker images list europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo --include-tags
Listing items under project jason-hsbc, location europe-west2, repository my-docker-repo.
IMAGE DIGEST TAGS CREATE_TIME UPDATE_TIME SIZE
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:30fb2cebd2bf82863608037ce41048114c061acbf1182261a748dadefff2372f 2024-03-18T02:45:02 2024-03-18T02:45:02 366980350
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:55737b9c2efc7115d878c8b8b036dd0fe8ae5e66b2154fe05ba015b28a31c7aa 1.0.0 2024-03-18T01:40:34 2024-03-18T01:40:34 366980348
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:569397b5d13264988800ad5af15359b4ab085eaca209484e6d859fc2a9e6b6ab 1.1.1 2024-03-31T12:03:57 2024-03-31T12:03:57 366981699
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:648920b7aba0b5cdeeca9e1237d9eeb62ee29188801a95adf7619bcee94e9eb1 2024-03-15T02:29:55 2024-03-15T02:29:55 367470655
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:6c4129c5a6938004b14cc555518b52a18e8177ce6940b52db7c514783ef9325b 1.1.2 2024-04-04T21:08:09 2024-04-04T21:08:09 366981681
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:7db14476085376db27a2814f8348fdbe002516c576d396c02030094c859f279c 2024-03-15T20:51:58 2024-03-15T20:51:58 367470658
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:88c7f68df0dd0508b551d53ad22cf4395fea233b5e77be016f13ce9c8c4401fa 2024-03-30T00:12:15 2024-03-30T00:12:15 366981231
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:a42cd0cd3a3483599b17d94022d1ccd234003491db217b4055f64997478149e1 2024-03-15T00:03:21 2024-03-15T00:03:21 367470619
europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service sha256:f1e5a8064b134aedd1a5840c16af85633e98a9649c830b6a3f6788a8b00bf16f 2024-03-25T00:35:48 2024-03-25T00:35:48 366980337
可以看见到1.1.2 的image 已经在GAR了
update deployment配置 测试
先看当前的状态
root@k8s-master:~# kubectl get deploy -o wide --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR LABELS
bq-api-service-deploy-sample 10/10 10 10 3h27m bq-api-service-container europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service:1.1.1 app=bq-api-service app=bq-api-service
root@k8s-master:~# kubectl get rs -o wide --show-labels
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR LABELS
bq-api-service-deploy-sample-9f8d9c988 10 10 10 3h27m bq-api-service-container europe-west2-docker.pkg.dev/jason-hsbc/my-docker-repo/bq-api-service:1.1.1 app=bq-api-service,pod-template-hash=9f8d9c988 app=bq-api-service,pod-template-hash=9f8d9c988
root@k8s-master:~# kubectl get pods -o wide --show-labels
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES LABELS
bq-api-service-deploy-sample-9f8d9c988-25tqr 1/1 Running 0 3h27m 10.244.1.20 k8s-node1 <none> <none> app=bq-api-service,pod-template-hash=9f8d9c988
bq-api-service-deploy-sample-9f8d9c988-67psf 1/1 Running 0 3h27m 10.244.3.30 k8s-node3 <none> <none> app=bq-api-service,pod-template-hash=9f8d9c988
bq-api-service-deploy-sample-9f8d9c988-cvm4z 1/1 Running 0 3h27m 10.244.3.32 k8s-node3 <none> <none> app=bq-api-service,pod-template-hash=9f8d9c988
bq-api-service-deploy-sample-9f8d9c988-f77tx 1/1 Running 0 3h27m 10.244.1.23 k8s-node1 <none> <none> app=bq-api-service,pod-template-hash=9f8d9c988
bq-api-service-deploy-sample-9f8d9c988-f98s6 1/1 Running 0 3h27m 10.244.2.82 k8s-node0 <none> <none> app=bq-api-service,pod-template-hash=