企业运维实战之k8s(Pod生命周期、控制器)初学者必看,点赞关注后期不迷路

本文深入探讨了Kubernetes中的Pod生命周期,包括Init容器、livenessProbe和readinessProbe的使用。同时,详细讲解了控制器如ReplicaSet、Deployment、DaemonSet、Jobs和CronJob的应用,帮助初学者理解如何确保Pod的稳定性和应用的自动化部署更新。
摘要由CSDN通过智能技术生成

Pod生命周期

在这里插入图片描述在这里插入图片描述

下面是使用 Init 容器的示例

vim init.yaml

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busyboxplus
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busyboxplus
    command: ['sh', '-c', "until nslookup myservice.default.svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
  - name: init-mydb
    image: busyboxplus
    command: ['sh', '-c', "until nslookup mydb.default.svc.cluster.local; do echo waiting for mydb; sleep 2; done"]

“until nslookup myservice.default.svc.cluster.local; do echo waiting for myservice; sleep 2; done”]
执行nslookup指令解析myservice.default.svc.cluster.local这个地址,如果解析成功则继续,不成功则一直处于初始化状态,循环do里面的内容。
由于没有加入服务,则会一直循环

将init.yaml中的配置应用到pod

kubectl apply -f init.yaml

显示运行中的Pod

kubectl get pod

在这里插入图片描述

加入服务

vim init.yaml

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busyboxplus
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busyboxplus
    command: ['sh', '-c', "until nslookup myservice.default.svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
  - name: init-mydb
    image: busyboxplus
    command: ['sh', '-c', "until nslookup mydb.default.svc.cluster.local; do echo waiting for mydb; sleep 2; done"]

---
apiVersion: v1
kind: Service
metadata:
  name: myservice
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
---
apiVersion: v1
kind: Service
metadata:
  name: mydb
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9377

显示运行中的Pod,初始化完成,status显示running
在这里插入图片描述
将pod删除

kubectl delete -f init.yaml

在这里插入图片描述

下面是使用livenessProbe(存活态探针)的示例

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
spec:
#  hostNetwork: true
#  nodeName: server4
  #imagePullSecrets: 
  containers:
  - name: myapp
    image: myapp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pu.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值