春风十里不如你 —— Taozi - pod 2023-05-28T12:05:24+08:00 Typecho https://www.xiongan.host/index.php/feed/atom/tag/pod/ <![CDATA[【Docker】k8s健康检查]]> https://www.xiongan.host/index.php/archives/212/ 2023-05-28T12:05:24+08:00 2023-05-28T12:05:24+08:00 admin https://www.xiongan.host 健康检查

使用存活探针

创建使用 execaction 模式的存活探针 pod 的 yaml 文件。

68489166457

需要创建目录(/tmp/healthy)查看到运行成功,持续监控pod状态,看到pod反复重启

68489177496

使用 describe 命令查看详细 pod 信息,正常

68489215771

创建使用 http 存活探针的 pod 的 yaml 文件。

创建yaml

68489270782

运行并查看状态

68489266877

查看详细events

68489274944

创建使用 tcp 存活探针的 pod 的 yaml,模板采用 httpd 容器镜像。

创建yaml文件

68489334782

运行并进行容器内操作

68489330745

查看pod的restarts次数

68489340633

查看pod之前未通过liveness的记录

68489347800

就绪探针

创建 http 的 deployment 的 yaml 文件,其中配置 readiness 探针。

运行deployment

68489537126

68489538966

使用describechakanhttp服务的endpoint

68489544567

可以看到有4个地址

进入一个容器,删除index.html文件

68489549710

再使用 describe 命令查看 endpoint

68489553113

可以看到删除的pod地址已经从endpoint中移除

查看pod的详细信息,看到pod未通过探针检测

68489560281

查看pod信息,kandaopod处于notready状态

68489564469

]]>
<![CDATA[【K8s】下的kubectl的Deployment部署Nginx]]> https://www.xiongan.host/index.php/archives/205/ 2023-05-10T21:00:59+08:00 2023-05-10T21:00:59+08:00 admin https://www.xiongan.host 部署Nginx服务

简介:使用Deployment实现其滚动更新管理。

创建 Deployment

在 master 节点创建/labfile/deployfile 目录,用于保存配置文件。后续创建deployment 的 yaml 文件保存在此处。

[root@master ~]# mkdir labfile
[root@master ~]# cd labfile/
[root@master labfile]# mkdir deplofile
[root@master labfile]# cd deplofile/
[root@master deplofile]# vim nginx-dy.yaml
//以下内容为deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-dy
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

部署该 nginx-dy

[root@master deplofile]# kubectl apply -f nginx-dy.yaml 
deployment.apps/nginx-dy created

查看详细信息、创建结果和replicaset

68368221905

68368214323

已经创建好:

68368227777

弹性伸缩 Deployment

编辑之前创建的nginx-dy.yaml,将副本数量修改5

68368234327

应用变更后的yaml文件

[root@master deplofile]# kubectl apply -f nginx-dy.yaml 
deployment.apps/nginx-dy configured
[root@master deplofile]# kubectl get pod

68368242410

滚动升级 deployment

复制ng原版为两个新版本

[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v2.yaml 
[root@master deplofile]# cp nginx-dy.yaml nginx-dy-v3.yaml

68368254157

68368256811

进行滚动更新

[root@master deplofile]# kubectl apply -f nginx-dy-v2.yaml --record

查看更新状态,上为更新前版本

68368327387

查看replicaset,看到一个新的,里面有5个pod,原有的pod不存在了

68368337301

查看deployment更新事件

68368335839

更新到v3版本

[root@master deplofile]# kubectl apply -f nginx-dy-v3.yaml --record

68368352563

查看deployment的更新记录

[root@master deplofile]# kubectl rollout history deployment nginx-dy

68368370547

查看历史版本 2 的详细信息

[root@master deplofile]# kubectl rollout history deployment nginx-dy --revision=2

68368375317

回滚到历史版本2

[root@master deplofile]# kubectl rollout undo deployment nginx-dy --to-revision=2

68368385037

可以看到已经回滚到了版本2

删除deployment

[root@master deplofile]# kubectl delete deployment nginx-dy

68368392541

实训

查看deployment信息

68368444955

ymal文件搭建httpd

通过 yaml 文件创建一个 deployment,有如下要求:

  1. 使用 httpd:2.4
  2. 4副本
[root@master deplofile]# vim httpd-v1.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-dy
  labels:
    app: httpd
spec:
  replicas: 4
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
      - name: httpd
        image: httpd:2.4
        ports:
        - containerPort: 8080

开始创建

68368496033

将上面创建的deployment删除一个pod,变成副本3

编辑yaml文件

更新

68368512413

升级该 deployment 的镜像版本至 latest。

复制v1版本yaml为v2版本,并修改镜像版本号

68368559406

进行更新升级,看到版本已经升级到了latest

68368561618

寻找该 deployment 中各个 pod 运行节点,deployment 创建的时间戳(Creation Timestamp)。

68368575679

]]>