栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

K8S的pod的生命周期

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

K8S的pod的生命周期

一、创建

1、创建名称空间2、创建 pod 二、发布

1、开启ipvs2、查看日志 三、更新四、回滚五、删除

一、创建 1、创建名称空间

不指定名称空间就是default

[root@master ~]# kubectl create namespace zy
namespace/zy created

2、创建 pod

kubectl run命令
kubectl run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas]
[–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…] [options]

[root@master ~]# kubectl create deployment nginx-test --image=nginx --port=80 --replicas=3 -n zy
                                                     控制器          pod名称      镜像名称      暴露端口    副本集数量     指定名称空间

在K8S v1.18.0以后,–replicas已弃用 ,推荐用 deployment 创建 pods
1.18之前

[root@master ~]# kubectl run nginx-test --image=nginx --port=80 --replicas=3 -n zy



可进入容器查看信息和事件

[root@master ~]# kubectl describe pod nginx-test-6c88c44876-jdqvs -n zy


查看pod的IP和所有master的IP

[root@master ~]# kubectl get endpoints -A


查看所有资源信息

[root@master ~]#  kubectl get all -A



删除其中一个pod

[root@master ~]#  kubectl get pod -n zy

[root@master ~]# kubectl delete pod nginx-test-6c88c44876-jdqvs -n zy



可以发现,pod是重建一个新的然后再删掉需要删除的pod
如果要完全删除只能删除控制器

[root@master ~]# kubectl delete deploy/nginx-test -n zy

二、发布

kubectl expose (-f FILENAME | TYPE NAME) [–port=port] [–protocol=TCP|UDP|SCTP]
[–target-port=number-or-name] [–name=name] [–external-ip=external-ip-of-service] [–type=type]

[root@master ~]# kubectl expose deployment nginx-test -n zy --port=80 --target-port=80 --name=nginx-service --type=NodePort

[root@master ~]# kubectl get pod,svc -n zy


1、开启ipvs

在node节点上操作

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1

sysctl -p

执行以下脚本

cat > /etc/sysconfig/modules/ipvs.modules < 

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

lsmod | grep -e ipvs -e nf_conntrack_ipv4


接下来还需要确保各个节点上已经安装了ipset软件包。 为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm

yum install ipset ipvsadm -y

修改ConfigMap的kube-system/kube-proxy中的config.conf,mode: “ipvs”

[root@master ~]# kubectl edit  configmap -n kube-system  kube-proxy


对于Kubernetes来说,可以直接将这三个Pod删除之后,会自动重建。

[root@master ~]# kubectl get pods -n kube-system|grep proxy
[root@master ~]# kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'

等到proxy的pod重建之后
在node节点上

[root@node01 ~]# ipvsadm -L -n

2、查看日志
[root@master ~]# kubectl logs nginx-test-6c88c44876-6np7f -n zy

实时查看10条

[root@master ~]# kubectl logs -f --tail 10 nginx-test-6c88c44876-6np7f -n zy

三、更新


先打开监控

[root@master ~]# watch -n 1 kubectl get pod -n zy

[root@master ~]# kubectl set image deploy/nginx-test nginx=nginx:1.14 -n zy
deployment.apps/nginx-test image updated

开始逐一更新

更新完成


方法二
先在master上打开监控

然后编辑控制器



保存退出后监控显示已在更新

更新完毕

四、回滚

支持的控制器
Valid resource types include:

deploymentsdaemonsetsstatefulsets
允许的操作
Available Commands:
history 显示 rollout 历史
pause 标记提供的 resource 为中止状态
resume 继续一个停止的 resource
status 显示 rollout 的状态
undo 撤销上一次的 rollout

[root@master ~]# kubectl rollout undo deploy/nginx-test -n zy
deployment.apps/nginx-test rolled back



五、删除

需要删除pod,svc还有node上的jmage

[root@master ~]# kubectl delete deploy/nginx-test -n zy
deployment.apps "nginx-test" deleted
[root@master ~]# kubectl get svc -n zy
NAME            TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort   10.1.46.250           80:31587/TCP   17h
[root@master ~]# kubectl delete svc nginx-service -n zy
service "nginx-service" deleted


注意,如果是1.18以上版本,如果用kubectl apply -f ***.yaml创建的pod

kubectl delete -f ***.yaml时只删除deploy,如果要删除pod还需要删除rs(副本集控制器)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747091.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号