倡议应用3A服务器来搭建好玩的试验,比拟不便
1、ymal介绍
k8s是容器编排引擎,应用yaml来编排部署利用
特点:1、缩进示意层级关系
2、不反对制表符“tab”缩进,须要应用空格缩进 3、通常结尾缩进两个空格 4、关键词字符后缩进一个空格,比方冒号与逗号前面须要缩进一个字符 5、“---”示意YAML格局,一个文件的开始 6、“#”示意正文
以下yaml为例
等同于
kubectl create deployment web --image=lizhenliang/java-demo --replicas=3 -n default
2、编写示例yaml
在应用中咱们可能存在API版本不统一导致报错,能够通过命令查看版本
kubectl api-resources |grep Deployment
1、其中,标签个别定义两个,由我的项目与利用组成,#键:值 可任意定义。例如
project:ec
app: portal
2、matchLabels必须与上面的labels保持一致,否则apply会报错
例如上面这个创立deployment的yaml
kind: Deployment
metadata:
name: web666
namespace: team-a
spec:
replicas: 3
selector:
matchLabels: project: ec app: portal
template:
metadata: labels: project: ec app: portalspec: containers: - name: web image: lizhenliang/java-demo:latest
其中,标签能够为两个,他是以键值对的形式存储,但matchLabels的值必须与labels相等,不相等会创立报错,而service是以标签来管制pod
replicas为正本数,image为拉取镜像名
2、创立service
apiVersion: v1
kind: Service
metadata:
name: web666
namespace: team-a
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
project: ec
app: portal
type: NodePort
标签与命名空间要确保与deployment统一
执行两个yaml文件
kubectl apply -f deployment.yaml
kubectl apply -f service.yam
查看服务
胜利
3、疾速生成yaml文件
间接手写yaml比拟麻烦,而且容易出错,所以有提供以下形式获取规范yaml文件并批改
3.1生成新yaml
1、通过命令获取yaml,能够通过创立服务的命令前面加 --dry-run=client -o yaml 来提取yaml,再依据获取到的yaml进行批改即可
例如
kubectl create deployment java-demo --image=nginx:1.20 -n team-a --dry-run=client -o yaml
他会输入yaml,减轻定向导出即可,其中,creationTimestamp与status: {}能够删除
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: java-demo
name: java-demo
namespace: team-a
spec:
replicas: 1
selector:
matchLabels: app: java-demo
strategy: {}
template:
metadata: creationTimestamp: null labels: app: java-demospec: containers: - image: nginx:1.20 name: java-demo resources: {}
status: {}
3.2 将已有的服务yaml导出
k8s反对将正在运行的服务的yaml文件导出,应用get命令加-o yaml即可(xxx为服务名)
kubectl get deployment xxx -o yaml
留神,此yaml内容不能间接在其余k8s环境中应用,在其余环境中应用的话要进行一些删除,要删除的内容如下:
残余的内容则是一个规范yaml,能够间接应用也能够用作模板批改
3.3关键词揭示
kubectl explain pods.spec.containers
kubectl explain deployment
3.4官网查找
间接在官网搜寻关键词,官网会给演示示例
官网地址:
https://kubernetes.io/zh/docs...