一、k8s yaml文件的用处

        Kubernetes 对象是 “目标性记录” —— 一旦创建对象,Kubernetes 系统将持续工作以确保对象存在。 通过创建对象,本质上是在告知 Kubernetes 系统,所需要的集群工作负载看起来是什么样子的, 这就是 Kubernetes 集群的 期望状态(Desired State)。

        yaml文件就是用来描述你的应用启动需要达到一个什么样的状态。

二、必需字段

在想要创建的 Kubernetes 对象对应的 .yaml 文件中,需要配置如下的字段:

apiVersion - 创建该对象所使用的 Kubernetes API 的版本
kind - 想要创建的对象的类别
metadata - 帮助唯一性标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace
spec - 你所期望的该对象的状态

Deployment 控制器yaml

  1. apiVersion: apps/v1 #api
  2. kind: Deployment #控制器类型
  3. metadata: #元数据
  4. annotations:
  5. deployment.kubernetes.io/revision: "14"
  6. description: nuwa-sso
  7. generation: 17
  8. labels:
  9. k8s-app: nuwa-sso
  10. qcloud-app: nuwa-sso
  11. name: nuwa-sso
  12. namespace: nvwa-test
  13. spec:
  14. minReadySeconds: 10
  15. progressDeadlineSeconds: 600
  16. replicas: 1
  17. revisionHistoryLimit: 10
  18. selector: # 正确的Deployment书写方式,是要让spec.selector.matchLabels值和spec.template.metadata.lables值完全匹配,这样才不会报错
  19. matchLabels:
  20. k8s-app: nuwa-sso
  21. qcloud-app: nuwa-sso
  22. strategy:
  23. rollingUpdate:
  24. maxSurge: 0
  25. maxUnavailable: 1
  26. type: RollingUpdate
  27. template:
  28. metadata:
  29. creationTimestamp: null
  30. labels:
  31. k8s-app: nuwa-sso
  32. qcloud-app: nuwa-sso
  33. spec:
  34. containers:
  35. - image: dockerdev.gwmfc.com/cmp-refactor/nuwa-sso:1.0.0.52.test
  36. imagePullPolicy: Always
  37. name: nuwa-sso
  38. resources:
  39. limits:
  40. memory: 1536Mi
  41. requests:
  42. cpu: 250m
  43. memory: 512Mi
  44. terminationMessagePath: /dev/termination-log
  45. terminationMessagePolicy: File
  46. dnsPolicy: ClusterFirst
  47. hostNetwork: true
  48. imagePullSecrets:
  49. - name: dockerdev
  50. nodeSelector:
  51. type: gateway
  52. restartPolicy: Always
  53. schedulerName: default-scheduler
  54. securityContext: {}
  55. terminationGracePeriodSeconds: 30

statefulset 控制器yaml

文档更新时间: 2022-03-29 15:53   作者:张尚