初始提交

This commit is contained in:
2025-10-09 23:37:29 +08:00
commit 74896e5ddd
10 changed files with 653 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
一、RC 控制器简介
ReplicationController(RC)是Kubernetes中的一种控制器, 用于确保指定数量的Pod副本在集群中运行。
RC控制器通过监视Pod的状态, 并根据需要创建或删除Pod来维持所需的副本数。
RC控制器的主要功能包括:
1. 确保指定数量的Pod副本在运行
2. 监控Pod的状态
3. 根据需要创建或删除Pod
二、RC 控制器资源清单
# 资源清单例子
apiVersion: v1 # 接口组/版本
kind: ReplicationController # 资源类型RC 控制器
metadata: # RC 控制器元数据
name: nginx-rc # RC 控制器名称
spec: # RC 控制器规格 ·
replicas: 2 # 期望的pod副本数
selector: # 标签选择器
app: nginx # 选择标签为app=nginx的pod
template: # pod模板
metadata: # pod元数据
labels: # pod标签,必须与selector匹配是其子集
app: nginx # 标签key为appvalue为nginx
spec: # pod规格
containers: # 容器组列表
- name: nginx # 容器名称
image: nginx:1.7.9
env: # 环境变量
- name: ENV # 环境变量名称
value: test # 环境变量值
- name: ENV2 # 环境变量名称
value: test2 # 环境变量值
ports:
- containerPort: 80 # 容器端口
# 创建RC控制器
kubectl create -f 1.rc.yaml
# 查看RC控制器
kubectl get rc
# 查看RC控制器详情
kubectl describe rc nginx-rc

View File

@@ -0,0 +1,60 @@
一、RS 控制器简介
ReplicationSet(RS)是Kubernetes中的一种控制器, 用于确保指定数量的Pod副本在集群中运行。
RS控制器通过监视Pod的状态, 并根据需要创建或删除Pod来维持所需的副本数。
RS控制器相较RC控制器在标签选择器方面更为灵活, 支持更多的匹配方式。
RS控制器的主要功能包括:
1. 确保指定数量的Pod副本在运行
2. 监控Pod的状态
3. 根据需要创建或删除Pod
RS 在标签选择器上, 除了可以定义键值对的 matchLabels 选择形式, 还支持 matchExpressions 字段,可以提供多种选择。目前支持的操作包括:
1. In: # label的值在某个列表中
2. NotIn: # label的值不在某个列表中
3. Exists: # 某个label 存在
4. DoesNotExist: # 某个label不存在
# 例子: matchExpressions 选择形式
spec:
selector:
matchExpressions:
- key: app
operator: Exists
# 例子: matchExpressions 选择形式
spec:
selector:
matchExpressions:
- key: app
operator: In
values:
- spring-k8s
- hahahah
二、RS 控制器资源清单
# 资源清单例子
apiVersion: apps/v1 # 接口组/版本
kind: ReplicaSet # 资源类型RS 控制器
metadata: # RS 控制器元数据
name: nginx-rs # RS 控制器名称
spec: # RS 控制器规格 ·
replicas: 2 # 期望的pod副本数
selector: # 标签选择器
matchLabels: # 匹配标签模式
app: nginx # 选择标签为app=nginx的pod
template: # pod模板
metadata: # pod元数据
labels: # pod标签,必须与selector匹配是其子集
app: nginx # 标签key为appvalue为nginx
spec: # pod规格
containers: # 容器组列表
- name: nginx # 容器名称
image: nginx:1.7.9
env: # 环境变量
- name: ENV # 环境变量名称
value: test # 环境变量值
- name: ENV2 # 环境变量名称
value: test2 # 环境变量值
ports:
- containerPort: 80 # 容器端口

View File

@@ -0,0 +1,77 @@
一、Deployment 控制器基本概念
Deployment 控制器是 Kubernetes 中用于管理应用程序部署和更新的高级控制器。
它提供了一种声明式的方法来定义和管理应用程序的生命周期, 包括创建、更新和回滚等操作。
Deployment 控制器(通过管理 ReplicaSet 来确保应用程序的期望状态与实际状态保持一致),从而实现高可用性和弹性伸缩。
二、声明式与命令式
# kubectl replace -f deployment.yaml
命令式创建deployment控制器,
不支持部分更新,会覆盖之前的配置
# kubectl apply -f deployment.yaml
声明式创建deployment控制器,
支持部分更新,会合并之前的配置, 只更新与新配置中不同的部分
apply 可以结合 -f or -k 参数从文件或者目录中读多个配置文件,并根据当前集群资源状态进行更新
# kubectl diff -f deployment.yaml
比较当前集群实际运行的资源清单对象与当前资源清单文件对象的差异
三、Deployment 控制器资源清单
# 资源清单例子
apiVersion: apps/v1 # 接口组/版本
kind: Deployment # 资源类型Deployment 控制器
metadata:
labels:
app: myapp-deployment
name: myapp-deployment
spec:
selector:
metadata:
app: myapp-deployment
template:
metadata:
labels:
app: myapp-deployment
spec:
containers:
- name: myapp-container
image: nginx:1.7.9
ports:
- containerPort: 80
# 上边的Deployment控制器清单没在spec中设置replicas默认为 1
三、Deployment常用命令
# kubectl create -f deployment.yaml
创建Deployment控制器
# kubectl create -f deployment.yaml --record
创建Deployment控制器, 并记录变更历史
# kubectl apply -f deployment.yaml
创建或更新Deployment控制器
# kubectl scale deployment myapp-deployment --replicas=3
扩缩容Deployment控制器
# kubectl autoscale deployment myapp-deployment --min=10 --max=15 --cpu-percent=80
基于CPU使用率自动扩缩容Deployment控制器
# kubectl rollout status deployment myapp-deployment
查看Deployment控制器的滚动更新状态
# kubectl rollout undo deployment myapp-deployment
回滚Deployment控制器到上一个版本
# kubectl set image deployment/myapp-deployment myapp-container=nginx/nginx:1.9.1
更新Deployment控制器的镜像