云原生Kubernetes之浅认知

本文深入探讨了Kubernetes的服务生命周期,包括创建、发布、升级、回滚和删除等阶段,详细阐述了不同类型的Service(ClusterIP、NodePort、LoadBalancer、externalName)及其应用场景。同时,介绍了蓝绿发布、滚动更新等常见发布策略及其优缺点,并讲解了Yaml文件的语法要求和在K8S中创建与管理资源的方法。
摘要由CSDN通过智能技术生成

目录

一、服务的生命周期

二、service的类型及之间的区别

1、ClusterIP

2、NodePort

3、 LoadBalancer

         4、 externalName

三、发布方式

1、蓝绿发布

①、蓝绿部署概念

②、蓝绿发布步骤

④、蓝绿发布优缺点

2、滚动发布(Rolling Update)

①、滚动发布概念

②、步骤

③、升级数量

3、金丝雀发布

4、实际生产中发布模式

四、Yaml文件详解

1、yaml文件的语法格式要求

2、查看api的资源版本标签

3、手动编写副本控制器nginx-deployment的yaml的文件

4、 创建资源对象

 5、创建service服务对外提供访问并测试

五、利用--dry-run=client导出资源配置模板,免除手写

六、K8S中的port

1、port

2、nodePort

3、targetPort

4、containerPort


一、服务的生命周期

1、详细版:服务生命周期分为:创建、发布、升级、回滚、删除

      简单版:服务从创建到删除过程中,所包含的、经历过的状态

例如:

创建:[root@master ~]# kubectl create deployment nginx --image=nginx:1.15 --port=80 --replicas=3

deployment.apps/nginx created

发布:[root@master ~]# kubectl expose deploy/nginx --port=80 --target-port=80 --name=nginx-servicec --type=NodePor

service/nginx-servicec exposed

升级/更新:[root@master ~]# kubectl set image deploy/nginx nginx=nginx:latest

                                                                  ## 把nginx版本更新到最新版本

回滚:当新版本出现bug时,需要进行回滚,回到之前比较稳定的版本。

回滚的几种执行方式:

### 查看历史版本

[root@master ~]# kubectl rollout history deployment nginx 

deployment.apps/nginx 
REVISION  CHANGE-CAUSE
1         <none>                                 ## 显示的是三个版本
2         <none>
3         <none>
######################查看当前版本###############

[root@master ~]# curl -I 192.168.159.12:32086
HTTP/1.1 200 OK
Server: nginx/1.23.2                                       ### 版本为1.23.2
Date: Mon, 07 Nov 2022 08:45:49 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 19 Oct 2022 07:56:21 GMT
Connection: keep-alive
ETag: "634fada5-267"
Accept-Ranges: bytes
 

############################# 执行回滚到上一个版本

[root@master ~]# kubectl rollout undo deployment nginx 
deployment.apps/nginx rolled back
[root@master ~]# curl -I 192.168.159.12:32086
HTTP/1.1 200 OK
Server: nginx/1.15.12                                          #### 版本号:1.15.12          
Date: Mon, 07 Nov 2022 08:47:29 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 16 Apr 2019 13:08:19 GMT
Connection: keep-alive
ETag: "5cb5d3c3-264"
Accept-Ranges: bytes

### 执行回滚到指定版本

kubectl rollout undo deployment/nginx --to-revision=1

[root@master ~]# kubectl rollout history deployment nginx    ### 查看当前的版本历史
deployment.apps/nginx 
REVISION  CHANGE-CAUSE
1         <none>
4         <none>
5         <none>

[root@master ~]# curl -I 192.168.159.12:32086             ## 查看当前版本号
HTTP/1.1 200 OK
Server: nginx/1.23.2
Date: Mon, 07 Nov 2022 08:55:43 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 19 Oct 2022 07:56:21 GMT
Connection: keep-alive
ETag: "634fada5-267"
Accept-Ranges: bytes

[root@master ~]# kubectl rollout undo deployment nginx --to-revision=1更新到指定版本
deployment.apps/nginx rolled back  
[root@master ~]# curl -I 192.168.159.12:32086        ### 查看版本号
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 07 Nov 2022 08:56:04 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes
 

### 检查回滚状态

kubectl rollout status deployment/nginx

[root@master ~]# kubectl rollout status deployment nginx 
deployment "nginx" successfully rolled out                   ## 显示回滚成功
 

删除:kubectl delete

### 删除副本控制器 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值