江明涛的博客
《K8s 入门四》使用YAML进行服务编排
《K8s 入门四》使用YAML进行服务编排

《K8s 入门四》使用YAML进行服务编排

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 上午