Skip to content

headless.yaml

源文件:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---

文件详解:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web               # 定义端口为80的别名
  clusterIP: None           # 定义为无头服务,使创建的service不具备调度的能力,但是可提供域名解析
  selector:
    app: nginx
---

statefulset.yaml

源文件:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: wangyanglinux/myapp:v1
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "nfs"
      resources:
        requests:
          storage: 1Gi  

文件详解:

apiVersion: apps/v1         # 接口组版本为 apps/v1
kind: StatefulSet           # 使用StatefulSet资源对象(控制器)
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"      # 指定service的名称为 nginx
  replicas: 3
  template:                                 # 定义pod的模板
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: wangyanglinux/myapp:v1
        ports:
        - containerPort: 80
          name: web
        volumeMounts:                       # 卷绑定
        - name: www                         # 卷绑定名为 www
          mountPath: /usr/share/nginx/html  # 卷绑定到容器内部的路径
  volumeClaimTemplates:                     # 卷声明模板(怎么创建 PVC)
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]      # 访问模式为 单节点读写
      storageClassName: "nfs"               # 使用的存储类为 nfs
      resources:                            # 资源请求量为 1G
        requests:
          storage: 1Gi