kubernetes
1. statefulset通过headless service维持pod的拓扑状态
1.1 通过headless service(无头服务)确保网络标识是一致
创建无头服务
[kubeadm@server2 statefulset]$ cat service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
开启一个nginx服务
[kubeadm@server2 statefulset]$ kubectl apply -f service.yaml
service/nginx created
[kubeadm@server2 statefulset]$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15d
nginx ClusterIP None <none> 80/TCP 7s
1.2 StatefulSet控制器
[kubeadm@server2 statefulset]$ cat deployment.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
name: web
[kubeadm@server2 statefulset]$ kubectl apply -f deployment.yaml
statefulset.apps/web created
[kubeadm@server2 statefulset]$ kubectl get pod
NAME READY STATUS RESTARTS AGE
nfs-client-provisioner-55d87b5996-pjcg8 1/1 Running 1 6h13m
web-0 1/1 Running 0 6m1s
web-1 1/1 Running 0 5m49s
[kubeadm@server2 statefulset]$ kubectl describe service nginx
Name: nginx
Namespace: default
Labels: app=nginx
Annotations: Selector: app=nginx
Type: ClusterIP
IP: None
Port: web 80/TCP
TargetPort: 80/TCP
Endpoints: 10.244.1.108:80,10.244.2.97

本文深入探讨了Kubernetes中的StatefulSet控制器,如何通过headless service保持Pod的拓扑状态,以及StatefulSet对存储状态的管理。同时,详细介绍了kubectl的四种弹性伸缩方式,包括直接修改副本数、更新yaml文件、编辑字段和使用patch命令。
最低0.47元/天 解锁文章
8945

被折叠的 条评论
为什么被折叠?



