使用k8s部署应用程序的流程
yaml文件格式说明
k8s是一个容器编排引擎,使用yaml文件编排部署应用。yaml语法格式如下:
- 缩进表示层级关系
- 不支持tab缩进,使用空格缩进
- 通常开头缩进两个字符
- 符号后缩进一个空格,比如:
- “---”表示yaml文件格式,文件的开始
- “#”表示注释
yaml文件创建资源对象
创建一个简单的deployment资源对象
apiVersion: apps/v1 # API版本
kind: Deployment # 资源类型
metadata: # 资源元数据
name: demo3 # 资源deployment名称
namespace: default # 名称空间
spec: # 资源规格
replicas: 3 # 副本数
selector: # 标签选择器 这里的标签一定要和template里的标签一致
matchLabels:
project: ec
app: portal
template: # pod模板
metadata: # pod元数据
labels:
project: ec
app: portal
spec: # pod规格
containers:
- name: web1
image: nginx:1.20
创建一个简单的service对象
apiVersion: v1
kind: Service
metadata:
name: demo3
namespace: default
spec:
selector: # service里的标签一定要和对应的deployment里的标签一致
project: ec
app: portal
ports:
- protocol: TCP
port: 80 # service端口 通过clusterIp访问用
targetPort: 80 # 镜像内服务端口,例如nginx默认是80
type: NodePort # service类型
关于资源版本的获取方式
kubectl api-resources
获取yaml文件的方式
用create命令生成
kubectl create deployment nginx --image=nginx:1.16 -o yaml --dry-run=client > my-deploy.yaml
--dry-run=client 本地测试运行,并不会真正起一个pod运行
用get命令获取
基于已有的资源导出yaml文件
kubectl get deployment demo3 -o yaml > test.yaml
yaml文件中字段查询帮助
kubectl explain pods.spec.containers
kubectl explain deployment