企业运维实战之k8s(Pod管理、资源清单)初学者必看,点赞关注后期不迷路

Pod管理

创建Pod应用

kubectl run demo --image=myapp:v1

显示Pod的信息

kubectl get pod -o wide

测试这个Pod应用

curl IP

在这里插入图片描述删除Pod

kubectl delete pod demo

在这里插入图片描述
创建一个名为demo的deployment,运行myapp:v1镜像

kubectl create deployment demo --image=myapp:v1 --replicas=2

在这里插入图片描述

直接删除pod触发了replicas的确保机制,删除后,集群会自动创建Pod

kubectl delete pod demo-5b4fc8bb88-2w98t

在这里插入图片描述创建service

kubectl expose deployment demo --port=80 --target-port=80

kubectl get all

此时pod客户端可以通过service/demo的ip访问后端的两个Pod
在这里插入图片描述
查看svc(service)信息
可以看到后端连接的两个pod的

kubectl describe svc demo

在这里插入图片描述
实现整体的负载均衡

在这里插入图片描述

Pod扩容

kubectl scale --replicas=6 deployment  demo

在这里插入图片描述
Pod缩容

kubectl scale --replicas=3 deployment  demo

在这里插入图片描述
更新Pod镜像

kubectl set image deployment demo myapp=myapp:v2

查看pod信息,可以看到v1版本的副本已经被关闭,新创建出了两个v2版本的副本

kubectl get pod -o wide
kubectl  get  all
curl 10.244.3.7
curl 10.244.2.7

在这里插入图片描述

查看历史版本

kubectl rollout history deployment demo

在这里插入图片描述
回滚版本

kubectl rollout undo deployment demo --to-revision=1

查看pod信息,可以看到v2版本的副本已经被关闭,新创建出了两个v1版本的副本
在这里插入图片描述

资源清单

在 K8S 中,一般使用 yaml 格式的文件来创建符合我们预期期望的 pod,这样的 yaml 文件我们一般称为资源清单
在这里插入图片描述

spec.containers[].name            (String): 定义容器的名字
spec.containers[].image           (String): 走义要用到的镜虑名称
spec.containers[].imagePullPolicy (String): 定义镜像拉取策,有Always、Never、IfNotPresent 三个值可选
                                            (1)Always:是每次都尝试重新拉取镜像
                                            (2)Never:表示仅便用本地镜 
                                            (3)IfNOtPresent:如果本地有镜像就使用本地镜像,没有就拉取在线镜像。
                                            默认值是Always。
spec.containers[].command[]    (List): 指定容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令。
spec.containers[].largs[]      (List): 指定容器启动命令参数,因为是数组可以指定多个。
spec.containers[].worKingDir (String): 指定容器工作目录

spec.containers[].volumeMounts[]             (List): 指容器内部的存卷配置
spec.containers[].volumeMounts[].name      (String): 指可以被容器挂载的存储卷的名称
spec.containers[].volumeMounts[].mountPatn (String): 指可以被容器挂载的存储卷路径
spec.containers[].volumeMounts[].readOnly  (String): 设置存储卷路径的读写模式,ture或者false,默认为读写模式

spec.containers[].ports[]                 (List): 指走容器需要用到的端囗列表
spec.containers[].ports[].name          (String): 指定端口名称
spec.containers[].ports[].containerPort (String): 指定容器需要监听的端囗号
spec.containers[].ports[].hostPort      (String): 指定容器所在主机需要监听的端囗号,默认跟上面containerPort相同,注意设置了
                                             hostPort同一台主机无法启动该容器的相同副本(因为主机端囗号不能相同,这样会冲突)
spec.containers[].ports[].protocol      (String):指定端囗协议,支持TCP和UDP,默认值为TCP

spec.containers[].env[]          (List): 指定容器运行前需设置的环境变量列表
spec.containers[].env[].name   (String): 指定环境变量名称
spec.containers[].env[].value  (String): 指定环境变量值

spec.containers[].resources               (Object): 指定资源限制和资源请求的值(这里开始就是设置容器的资源上限〕
spec.containers[].resources.limits        (Object): 指定设置容器运行时资源的运行上限
spec.containers[].resources.limits.cpu    (String): 指定CPU的限制,单位为core数,将用于 docker run --cpu-shares参数(这里
                                                    前面文章Pod资源限制有讲过)
spec.containers[].resources.limits.memory (String): 指定MEM内存的限制,单位为MiB、GiB

spec.restartPolicy    (String): 定义Pod的重启策略,可选值为Always、OnFailure, 默认值为 Always。
                              1.Always: Pod 一旦终止运行,则无论容器是如何终止的,Kubelet服务都将重启它。
                              2.OnFailure:只有Pod以非零退出码终止时,kubelet才会重启该容器。如果容器正常结束〔退出码为0),则
                                kubelet将不会重启它。
                              3.Never:Pod终止后,kubelet将退出码报给Master,不会重该Pod。
spec.nodeSelector     (Object): 定义Node的Label过滤标签,以key:value格式指定
spec.imagePuIlSecrets (Object): 定义pull镜像时便用secret名称,以name:secretkey格式指定
spec.hostNetwork     (Boolean): 定义是否使用主机网络模式,默认值为false。设置true表示使用宿主机网络,不使用docker网桥,同时设置了
                                true将无法在同一台宿主机上启动第二个副本。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pu.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值