K8S之StatefulSet有状态服务详解

废话不多性,我们直接进入主题,先拿Nginx测试,主演示一下yaml的写法

一  statefulset


我们为statefulset设置了3个副本,从0开始标号,创建3个副本,把自动创建PV和PVC设置上

statefulset.yaml

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

1.png

2.png

3.png

二  headless-svc

headless-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: headless-web
spec:
clusterIP: None
ports:
- port: 80
protocol: TCP
selector:
app: web

可以看到,CLUSTER-IP是None

4.png

启动Pod

kubectl run test -it --rm --image=busybox -- sh
nslookup headless-web

域名解析结果

5.png

通过<Pod Name>.<Headless Service>在容器里访问

curl web-0.headless-web

原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4081.html

发表评论

登录后才能评论