[k8s] workload of StatefulSet and headless service

 

[5.1]
## headless service


cd /labfile
mkdir ./statefile && cd ./statefile

vim headless-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: headless
spec:
  ports:
  - name: tomcat-service-port
    port: 80
    targetPort: 8080
  clusterIP: None
  selector:
    app: tomcat

# 关键点   clusterIP: None

kubectl create -f headless-service.yaml

kubectl get svc

 

 

[5.2]
## StatefulSet of Tomcat

CCE Storage UI:
#     ① 存储卷声明类型:极速文件存储
#     ② PVC名称:cce-efs-import-sts
#     ③ 创建方式:新建存储卷 , 选择 sfs-turbo-k8s
#     ④ 极速文件存储:选择默认
#     ⑤ PV名称:cce-efs-import-sts



vim tomcat-statefulset.yaml


apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: tomcat-statefulset
spec:
  serviceName: tomcat-headless
  replicas: 3
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat
        ports:
        - containerPort: 8080
        volumeMounts:
        - mountPath: /webapps
          name: www-storage
      volumes:
      - name: www-storage
        persistentVolumeClaim:
          claimName: cce-efs-import-sts


kubectl apply -f tomcat-statefulset.yaml

kubectl get pod

kubectl get sts

 

 

[5.3]
## show DNS of Pod

kubectl get pod -o wide


kubectl run dnsutils --image=tutum/dnsutils  --command -- sleep infinity

kubectl exec dnsutils nslookup headless

 

[5.4]
## Operate StatefulSet

kubectl get statefulset

kubectl exec -it tomcat-statefulset-0 /bin/sh

cd /webapps

echo "hello sts" > hello.txt

exit



kubectl delete pod tomcat-statefulset-0
kubectl get pod


kubectl exec -it tomcat-statefulset-0 /bin/bash
cd /webapps
ls && cat hello.txt
exit


# hello.txt has exists.

 

posted on 2025-04-12 10:41  天涯人  阅读(6)  评论(0)    收藏  举报

导航