当前位置:  首页>> 技术小册>> Kubernets合辑5-Pod控制器

  1. ---
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: my-svc
  6. namespace: apps
  7. spec:
  8. selector:
  9. app: nginx-web
  10. role: web
  11. state: "true"
  12. clusterIP: None
  13. ports:
  14. - name: http
  15. port: 80
  16. targetPort: 80
  17. ---
  18. apiVersion: apps/v1
  19. kind: StatefulSet
  20. metadata:
  21. name: nginx-web
  22. namespace: apps
  23. labels:
  24. app: nginx
  25. role: web
  26. spec:
  27. replicas: 2
  28. serviceName: my-svc
  29. selector:
  30. matchLabels:
  31. app: nginx-web
  32. role: web
  33. state: "true"
  34. template:
  35. metadata:
  36. labels:
  37. app: nginx-web
  38. role: web
  39. state: "true"
  40. spec:
  41. containers:
  42. - name: nginx-web
  43. image: linuxduduniao/nginx:v1.0.0
  44. ports:
  45. - name: http
  46. containerPort: 80
  47. readinessProbe:
  48. httpGet:
  49. port: 80
  50. path: /health
  51. volumeMounts:
  52. - name: nginx-web
  53. mountPath: /usr/share/nginx/html
  54. volumeClaimTemplates:
  55. - metadata:
  56. name: nginx-web
  57. namespace: apps
  58. spec:
  59. accessModes: ["ReadWriteOnce"]
  60. resources:
  61. requests:
  62. storage: 2Gi
  63. storageClassName: managed-nfs-storage # nfs classstorage,参考https://www.yuque.com/duduniao/k8s/vgms23#3W9oz
  1. [root@duduniao local-k8s-yaml]# kubectl -n apps get sts -o wide # 当前sts 状态
  2. NAME READY AGE CONTAINERS IMAGES
  3. nginx-web 2/2 19s nginx-web linuxduduniao/nginx:v1.0.0
  4. [root@duduniao local-k8s-yaml]# kubectl -n apps get pod -o wide # 注意Pod名称
  5. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  6. nginx-web-0 1/1 Running 0 86s 172.16.4.158 centos-7-55 <none> <none>
  7. nginx-web-1 1/1 Running 0 77s 172.16.3.98 centos-7-54 <none> <none>
  8. [root@duduniao local-k8s-yaml]# kubectl -n apps get pvc -o wide # 注意pvc名称
  9. NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE VOLUMEMODE
  10. nginx-web-nginx-web-0 Bound pvc-b36b90f1-a268-4815-b55b-6f7fda587193 2Gi RWX managed-nfs-storage 93s Filesystem
  11. nginx-web-nginx-web-1 Bound pvc-1461c537-e784-41fd-9e78-b1e6b212912c 2Gi RWX managed-nfs-storage 84s Filesystem
  12. [root@duduniao local-k8s-yaml]# kubectl -n apps get pv -o wide # 注意pv名称
  13. NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE VOLUMEMODE
  14. pvc-1461c537-e784-41fd-9e78-b1e6b212912c 2Gi RWX Delete Bound apps/nginx-web-nginx-web-1 managed-nfs-storage 88s Filesystem
  15. pvc-b36b90f1-a268-4815-b55b-6f7fda587193 2Gi RWX Delete Bound apps/nginx-web-nginx-web-0 managed-nfs-storage 97s Filesystem
  16. [root@duduniao local-k8s-yaml]# kubectl -n apps describe svc my-svc
  17. Name: my-svc
  18. Namespace: apps
  19. Labels: <none>
  20. Annotations: Selector: app=nginx-web,role=web,state=true
  21. Type: ClusterIP
  22. IP: None
  23. Port: http 80/TCP
  24. TargetPort: 80/TCP
  25. Endpoints: 172.16.3.98:80,172.16.4.158:80
  26. Session Affinity: None
  27. Events: <none>
  28. [root@centos-7-51 ~]# dig -t A my-svc.apps.svc.cluster.local @10.96.0.10 +short # 无头服务特性,用于服务发现
  29. 172.16.4.216
  30. 172.16.3.105
  31. [root@centos-7-51 ~]# dig -t A nginx-web-0.my-svc.apps.svc.cluster.local @10.96.0.10 +short # statefulset 特性,可以用pod名称解析到Pod的地址
  32. 172.16.4.216
  33. [root@centos-7-51 ~]# dig -t A nginx-web-1.my-svc.apps.svc.cluster.local @10.96.0.10 +short
  34. 172.16.3.105

该分类下的相关小册推荐: