k8s-deployment控制器

k8s-deployment控制器

1、yaml文件标签学习-指定pod在哪台节点上创建

强制指定pod在指定节点上创建:

复制代码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web1
  template:
    metadata:
      labels:
        app: web1
    spec:
      nodeName: node01.local # 强制指定pod在node01.local节点上创建
      containers:
      - name: my-pod-dep
        image: 192.168.84.11/k8s/music:v3
        ports:
        - protocol: TCP
          containerPort: 80

给node节点打标签,选择pod在那个标签的node节点运行

查看节点标签

复制代码
[root@master ~]# kubectl get nodes node01.local --show-labels
NAME           STATUS   ROLES    AGE   VERSION   LABELS
node01.local   Ready    <none>   17h   v1.17.6   
beta.kubernetes.io/arch=amd64,
beta.kubernetes.io/os=linux,
kubernetes.io/arch=amd64,
kubernetes.io/hostname=node01.local,
kubernetes.io/os=linux

打标签

复制代码
[root@master ~]# kubectl label nodes node01.local disktype=ssd        #打标签
node/node01.local labeled
[root@master ~]# kubectl get nodes node01.local --show-labels
NAME           STATUS   ROLES    AGE   VERSION   LABELS
node01.local   Ready    <none>   17h   v1.17.6   beta.kubernetes.io/arch=amd64,
beta.kubernetes.io/os=linux,
disktype=ssd,                                 #打的标签
kubernetes.io/arch=amd64,
kubernetes.io/hostname=node01.local,
kubernetes.io/os=linux

使用标签

复制代码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:        #选择下面的template的pod
      app: web1     #选择下面的template的pod
  template:
    metadata:
      labels:
        app: web1
    spec:
      #nodeName: node01.local
      nodeSelector:																		# 选择标签disktype=ssd的节点
        disktype: ssd
      containers:
      - name: my-pod-dep
        image: 192.168.84.11/k8s/music:v3
        ports:
        - protocol: TCP
          containerPort: 80

2、集群扩容方法

replicas:使用replicas标签

复制代码
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 6                       # 使用replicas标签
  selector:
    matchLabels:    
      app: web1    
  template:
    metadata:
      labels:
        app: web1
    spec:
      #nodeName: node01.local
      nodeSelector:
        disktype: ssd
      containers:
      - name: my-pod-dep
        image: 192.168.84.11/k8s/music:v3
        ports:
        - protocol: TCP
          containerPort: 80

使用命令

root@master \~# kubectl edit deployments.apps my-deployment

deployment.apps/my-deployment edited

2、

root@master \~# kubectl scale deployment my-deployment --replicas=2

deployment.apps/my-deployment scaled

3、节点调度策略

https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/

相关推荐
阿里云云原生12 小时前
研发视角的新突破:当 AI Coding 工具集成全域运维诊断,排查线上故障只需 3 分钟
云原生
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
阿里云云原生2 天前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生3 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生4 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生4 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事6 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes