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