yaml语法格式
K8s 是一个容器编排引擎,使用yaml文件编排要部署的应用,因此应是了解yaml语法格式:
1.缩进标识层级关系
2.不支持制表符tab缩进,使用空格缩进
3.通常开头缩进2个空格
4.缩进的空格数不重要,只要相同层级的元素左对齐即可
5.字符后缩进1个空格,入冒号逗号等
6."---" 表示yaml格式,一个文件的开始
7.使用#注释
8.大小写敏感
2.使用yaml部署应用
文档格式参考官方文档:https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/
#vim nginx-deployment.yaml
#控制器定义
apiVersion: apps/v1
kind: Deployment
metadata:
#创建名为 nginx-deployment的 Deployment
name: nginx-deployment
labels:
app: nginx
spec:
#该 Deployment 创建三个(由 replicas 字段标明)Pod 副本
replicas: 3
selector:
matchLabels:
app: nginx
#被控制对象定义
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
kubectl apply -f nginx-deployment.yaml
3.使用YAML 创建service
文档格式参考官方文档:https://kubernetes.io/docs/concepts/services-networking/service/
#vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
port: serive 端口 通过ClusterIp访问用
targetPort: 镜像内服务端口,例如nginx的是80
selector:标签选择器和 deployment中标签保持一致
type:service类型
kubectl apply -f nginx-service.yaml
service/nginx-service created
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 29h
nginx NodePort 10.1.28.92 <none> 80:31162/TCP 93m
nginx-service NodePort 10.1.176.179 <none> 80:32144/TCP 14s
上次更新时间 13 3 月, 2023 at 09:59 上午