首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1. Pod
1.1. Pod介绍
1.1.1. Pod简介
1.1.2. Pod生命周期
1.1.3. Pod状态
1.2. Pod模板
1.2.1. apiversion/kind
1.2.2. metadata
1.2.3. spec
1.2.4. k8s和image中的命令
1.2.5. 就绪性探测和存活性探测
1.3. 案例
1.3.1. 创建简单pod
1.3.2. 带健康检测的pod
2. Deployment
2.1. 介绍
2.1.1. 简介
2.1.2. 部署方式
2.1.3. Deployment升级方案
2.2. 模板
2.3. 案例
2.3.1. 创建deployment
2.3.2. 模拟蓝绿发布
2.3.3. 滚动发布
2.3.4. 模拟灰度(金丝雀)发布
2.3.5. 版本回滚
2.3.6. 常用命令
3. DaemonSet
3.1. DaemonSet介绍
3.2. 模板
3.3. 案例
3.3.1. 创建daemonset
3.3.2. 升级daemonset
4. Job
4.1. Job介绍
4.2. 模板
4.3. 案例
5. CronJob
5.1. cronjob介绍
5.2. 模板
5.3. 案例
6. StatefulSet
6.1. 介绍
6.1.1. Statefulset使用场景
6.1.2. Statefulset注意项
6.2. 模板
6.3. 案例
6.3.1. 创建Statefulset资源
6.3.2. 扩缩容
6.3.3. 滚动更新
6.3.4. 删除Statefulset
6.3.5. 部署有状态应用一般思路
7. 原理分析
8. 调度
8.1. 调度器
8.2. 节点选择器
8.3. 节点亲和性
8.4. Pod亲和性
8.5. 污点和污点容忍度
当前位置:
首页>>
技术小册>>
Kubernets合辑5-Pod控制器
小册名称:Kubernets合辑5-Pod控制器
``` --- apiVersion: v1 kind: Service metadata: name: my-svc namespace: apps spec: selector: app: nginx-web role: web state: "true" clusterIP: None ports: - name: http port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx-web namespace: apps labels: app: nginx role: web spec: replicas: 2 serviceName: my-svc selector: matchLabels: app: nginx-web role: web state: "true" template: metadata: labels: app: nginx-web role: web state: "true" spec: containers: - name: nginx-web image: linuxduduniao/nginx:v1.0.0 ports: - name: http containerPort: 80 readinessProbe: httpGet: port: 80 path: /health volumeMounts: - name: nginx-web mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: nginx-web namespace: apps spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 2Gi storageClassName: managed-nfs-storage # nfs classstorage,参考https://www.yuque.com/duduniao/k8s/vgms23#3W9oz ``` ``` [root@duduniao local-k8s-yaml]# kubectl -n apps get sts -o wide # 当前sts 状态 NAME READY AGE CONTAINERS IMAGES nginx-web 2/2 19s nginx-web linuxduduniao/nginx:v1.0.0 [root@duduniao local-k8s-yaml]# kubectl -n apps get pod -o wide # 注意Pod名称 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-web-0 1/1 Running 0 86s 172.16.4.158 centos-7-55 <none> <none> nginx-web-1 1/1 Running 0 77s 172.16.3.98 centos-7-54 <none> <none> [root@duduniao local-k8s-yaml]# kubectl -n apps get pvc -o wide # 注意pvc名称 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE VOLUMEMODE nginx-web-nginx-web-0 Bound pvc-b36b90f1-a268-4815-b55b-6f7fda587193 2Gi RWX managed-nfs-storage 93s Filesystem nginx-web-nginx-web-1 Bound pvc-1461c537-e784-41fd-9e78-b1e6b212912c 2Gi RWX managed-nfs-storage 84s Filesystem [root@duduniao local-k8s-yaml]# kubectl -n apps get pv -o wide # 注意pv名称 NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE VOLUMEMODE pvc-1461c537-e784-41fd-9e78-b1e6b212912c 2Gi RWX Delete Bound apps/nginx-web-nginx-web-1 managed-nfs-storage 88s Filesystem pvc-b36b90f1-a268-4815-b55b-6f7fda587193 2Gi RWX Delete Bound apps/nginx-web-nginx-web-0 managed-nfs-storage 97s Filesystem [root@duduniao local-k8s-yaml]# kubectl -n apps describe svc my-svc Name: my-svc Namespace: apps Labels: <none> Annotations: Selector: app=nginx-web,role=web,state=true Type: ClusterIP IP: None Port: http 80/TCP TargetPort: 80/TCP Endpoints: 172.16.3.98:80,172.16.4.158:80 Session Affinity: None Events: <none> [root@centos-7-51 ~]# dig -t A my-svc.apps.svc.cluster.local @10.96.0.10 +short # 无头服务特性,用于服务发现 172.16.4.216 172.16.3.105 [root@centos-7-51 ~]# dig -t A nginx-web-0.my-svc.apps.svc.cluster.local @10.96.0.10 +short # statefulset 特性,可以用pod名称解析到Pod的地址 172.16.4.216 [root@centos-7-51 ~]# dig -t A nginx-web-1.my-svc.apps.svc.cluster.local @10.96.0.10 +short 172.16.3.105 ```
上一篇:
6.3. 案例
下一篇:
6.3.2. 扩缩容
该分类下的相关小册推荐:
Kubernets合辑12-配置中心
Kubernetes中文教程(三)
Kubernets合辑13-集群监控
Kubernets合辑7-存储
Kubernetes中文教程(四)
Kubernets合辑4-kubernetes入门
Kubernetes中文教程(一)
Kubernets合辑14-日志收集
Kubernets合辑6-服务发现
Kubernets合辑2-部署Ingress
Kubernetes合辑1-安装Kubernetes
Kubernets合辑11-持续集成