StatefulSet应用部署
1. 创建实验资源
开始实验之前,您需要先创建云服务器ECS和ACK集群资源。
说明:在实验资源创建过程中,ECS会安装命令行工具kubectl并连接ACK集群,方便您在后续实验中通过ECS中的Kubernetes命令行工具kubectl来管理ACK集群以及应用。
- 在实验室页面,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。
说明:资源创建过程需要7~10分钟。
2. 部署StatefulSet应用
本步骤指导你如何部署statefulset应用到k8s集群中,并查看statefulset应用中的Pod和PVC情况。
- 执行如下命令,创建statefulset.yaml文件。
vi statefulset.yaml
- 按i键进入编辑模式,将如下代码复制到文件中。
说明:storageClassName配置为alicloud-disk-ssd,表示使用的是阿里SSD类型的云盘。
apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80 name: web volumeMounts: - name: disk-ssd mountPath: /data volumeClaimTemplates: - metadata: name: disk-ssd spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "alicloud-disk-ssd" resources: requests: storage: 20Gi
- 按ECS键退出编辑模式,输入:wq,然后回车保存并退出文件。
- 执行如下命令,部署StatefulSet应用。
kubectl create -f statefulset.yaml
- 执行如下命令,查看Pod按照次序部署。
kubectl get pod -w -l app=nginx
返回结果如下 ,您可查看到Pod按照次序部署。
- 输入Ctrl+C键,停止查看。
- 执行如下命令,查看已部署的Pod。
kubectl get pod
返回结果如下,您可查看到有两个已部署的Pod。
- 执行如下命令,查看PVC。
kubectl get pvc
返回结果如下 ,您可查看到有两个PVC。
3. 扩容StatefulSet应用
本步骤指导你如何扩容StatefulSet应用的Pod,并查看Pod和PVC的变化情况。
- 执行如下命令,扩容StatefulSet应用为3个Pod。
kubectl scale sts web --replicas=3
- 执行如下命令,查看扩容后的Pod。
kubectl get pod
返回结果如下,您可查看到扩容后的StatefulSet应用有3个Pod。
- 执行如下命令,查看扩容后的PVC。
kubectl get pvc
返回结果如下,您可查看到扩容后的StatefulSet应用有3个PVC。
4. 缩容StatefulSet应用
- 执行如下命令,缩减StatefulSet应用为2个Pod,并查看Pod和PVC的变化情况。。
kubectl scale sts web --replicas=2
- 执行如下命令,查看缩容后的Pod。
kubectl get pod
返回结果如下,你可查看到StatefulSet应用已缩减到2个Pod。
- 执行如下命令,查看缩容后的PVC。
kubectl get pvc
返回结果如下,您可查看到PVC和PV并没有随Pod一起缩减。
5. 再次扩容StatefulSet应用
本步骤指导你如何扩容StatefulSet应用的Pod,并查看Pod和PVC的变化情况。
- 执行如下命令,扩容StatefulSet应用到3个Pod。
kubectl scale sts web --replicas=3
- 执行如下命令,查看扩容后的Pod。
kubectl get pod
返回结果如下,您可查看到扩容后的StatefulSet应用有3个Pod。
- 执行如下命令,查看扩容后的PVC。
kubectl get pvc
返回结果如下,您可查看到扩容后新创建的Pod仍会使用原来的PVC和PV。
6. 删除StatefulSet应用的Pod
本步骤指导你如何删除StatefulSet应用的Pod,并查看Pod和PVC的变化情况。
- 执行如下命令,查看名称为web-1的Pod所引用的PVC。
kubectl describe pod web-1 | grep ClaimName
返回结果如下,您可查看到名称为web-1的Pod所引用的PVC。
- 执行如下命令,删除名称为web-1的Pod。
kubectl delete pod web-1
- 执行如下命令,查看Pod。
kubectl get pod
返回结果如下,重新创建的Pod与删除前的Pod名称一致。
- 执行如下命令,查看PVC。
kubectl get pvc
返回结果如下,重新创建的Pod所使用的PVC与删除前的Pod所使用的PVC一致。
实验链接:https://developer.aliyun.com/adc/scenario/e561256759444baab1f8b302fe94ed43