cf854a216b![[Notion/技术支持/Kubernetes/attachments/Untitled 6.png]] 快速生成YAML文件
kubectl create deployment web --image=nginx -o yaml --dry --run > my.yaml
#创建一个名称叫web,镜像为nginx,以yaml文件的形式输出
#并且尝试运行实际不允许,然后输出保存到my.yaml
kubectl get deploy
#列出当前在集群中定义的所有部署
kubectl get deploy nginx -o=yaml --export >my.yaml
#导出运行的pod的yaml文件
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
serviceName: "mysql-service"
replicas: 1
#Kubernetes会创建两个副本(即两个Pod实例)来运行你的应用程序。
#这两个Pod将通过负载均衡来分配流量,从而实现负载均衡的效果。
#流量将被均匀地分配给这两个Pod,以便实现高可用性和负载均衡。
apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
app: mysql #设定service名称
spec:
# type: NodePort #指定公开端口
type: LoadBalancer #指定公开端口,并且可以连接外网
ports:
- port: 3306 #POD内部端口
nodePort: 30001 #不指定,则随机分配外部段偶
selector: #选择app名称
app: mysql #选择需要绑定的pod名称
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain #PVC删除PV不会删除
storageClassName: manual #对应配置的类
local: #hostpath
path: /mysql_data #物理本地地址
nodeAffinity: #偏好配置
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k8s-node #本地PV将只在localhost.localdomain节点上运行
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter # DaemonSet 的名称
spec:
selector: # 选择器
matchLabels: # 匹配的lable
app: node-tag # 选择包含此名称的 Label 节点上部署 Pod守护进程
template:
metadata:
labels:
app: pod-tag # 为创建的 进入守护进程的所有Pod 设置 Label名称
spec:
containers:
- name: node-exporter
image: prom/node-exporter:v1.2.2 # 容器镜像名称及版本(Prometheus Node Exporter)
ports:
- name: http
containerPort: 9100 # 容器监听的端口号(Prometheus Node Exporter 的默认端口)
resources:
limits:
cpu: 200m # 容器的 CPU 资源限制
memory: 200Mi # 容器的内存资源限制
requests:
cpu: 100m # 容器的 CPU 资源请求
memory: 100Mi # 容器的内存资源请求
securityContext:
runAsNonRoot: true # 以非 root 用户运行容器
readOnlyRootFilesystem: true # 将容器根文件系统设置为只读
volumeMounts:
- name: proc
mountPath: /host/proc # 容器挂载路径(用于监控宿主机的 /proc 目录)
readOnly: true # 挂载为只读
volumes:
- name: proc
hostPath:
path: /proc # 宿主机物理真实的目录路径(用于监控宿主机的 /proc 目录)
echo -n 'admin' | base64
apiVersion: v1
kind: Secret
metadata:
name: mysecret
namespace: default
type: Opaque
data:
user:
password:{{ .Values.password | b64enc }} #指定编码
# Example:
# password: {{ .Values.password | b64enc }}
#以变量的形式挂载pod
#以volume形式挂载pod
#创建配置文件
#file_name
redis.properties
#在文件中输入所需信息
redis.host-127.0.0.1
redis.port=6379
redis.password=123456
#以变量的形式挂载pod
#以volume形式挂载pod
kubectl create configmap redis-config --from-file=redis.properties
#模板
kubectl create configmap <configmap_name> --from-file=<file_name>
#变量挂载
kind: ConfigMap
apiVersion: v1
metadata:
name: CM
namespace: default
data:
key: default