菜单
本页目录

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