11、k8s-资源-Deployment-pod控制器
注意:namespace>deployment>pod>server
概念:在kubernetes中、Pod是最小的控制单元、但是kubernetes很少直接控制pod、一般都是通过pod控制器来完成的、pod控制器用于pod的管理、确保pod资源符合预期的状态、当pod资源出现故障时、会尝试进行重启或者重建pod。
注意:deployment打的是标签选择器(selector)、而pods打的是标签(label)、两者通过标签选择器和标签的值value来关联、得以让deployment来管理pod
deployment的增删改查
1、命令格式:kubectl run deployment名称 [参数] #--image 指定pod的镜像 #--port 指定端口 #--replicas 指定创建pod的数量 #namespace 指定空间 2、如新增一个deployment、3个pod:kubectl run nginx --image=nginx:1.17.1 --port=80 --replicas=3 -n dev
#这里的 nginx 就是pod控制器deployment的名称
#这里的replicas=3 如上图创建了3个pod 这3个pod统一归nginx这个deployment控制管理的
#这些pod是通过标签来和deployment 也就是nginx(pod)控制器来进行关联的、在创建pod控制器的时候就默认给这三个pod打上了标签了
3、查看deployment和pods:kubectl get deployment,pods -n dev
4、查看deployment控制器的详细信息:kubectl describe deployment nginx -ndev
5、查看pod的标签:kubectl get pods -ndev --show-labels
6、删除deployment:kubectl delete deployment nginx -ndev #注意删除了deployment后pod也会跟着删除
使用yaml文件来创建deployment
1、创建yaml文件:vim deployment-pod.yaml ================================= apiVersion: apps/v1 kind: Deployment metadata: name: nginx0 namespace: dev spec: replicas: 3 #建立3个pod selector: matchLabels: #matchLabels
字段是一个键值对的集合,其中键是标签的名称,值是要匹配的标签的值、run: nginx
表示要选择具有标签run
的值为nginx
的 Pod run: nginx template: #模板 类型建立pod的yaml配置 3个pod会根据这个模板去新建 metadata: labels: run: nginx #pod的标签 spec: containers: - image: nginx:1.17.1 name: nginx ports: - containerPort: 80 protocol: TCP ================================= 2、执行yaml文件来创建deploy:kubectl create -f deployment-pod.yaml 3、查看是状态:kubectl get deploy,pods -ndev -o wide --show-labels
4、查询具有特定标签选择器的 Pod:kubectl get pod -n dev --selector=run=nginx
5、删除deployment:kubectl delete -f deployment-pod.yaml
分类:
Kubernetes-K8s
标签:
k8s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了