• K8S之Deployment控制pod


    configMap.yaml

    1. apiVersion: v1
    2. kind: ConfigMap
    3. metadata:
    4. name: pub-oa-configmap
    5. namespace: hunter
    6. data:
    7. MYSQL_HOST: pub-oa-db-svc
    8. MYSQL_PORT: 3306

    sceret.yaml

    1. apiVersion: v1
    2. kind: Secret
    3. metadata:
    4. name: pub-oa-secret
    5. namespace: hunter
    6. type: Opaque
    7. data:
    8. MYSQL_USER: cm9vdA== # 注意加-n参数,echo -n root|base64
    9. MYSQL_PASSWORD: aHVudGVy

     service-mysql.yaml

    1. apiVersion: apps/v1
    2. kind: Service
    3. metadata:
    4. name: pub-oa-db-svc
    5. namespace: hunter
    6. spec:
    7. ports:
    8. - port: 3306
    9. protocal: TCP
    10. targetPort: 3306
    11. selector:
    12. app: pub-oa-db
    13. type: ClusterIP

     service-web.yaml

    1. # 查看pod节点,并显示labels
    2. # kubectl -n hunter get pods --show-labels
    3. # 查看service
    4. # kubectl -n hunter get svc
    5. # 查看指定service
    6. # kubectl -n hunter get svc pub-oa-web
    7. # 查看某个service详情
    8. # kubectl -n hunter describe svc pub-oa-web
    9. # 查看pub-oa-web的 endpoints情况
    10. # kubectl -n hunter get endpoints pub-oa-web
    11. apiVersion: apps/v1
    12. kind: Service
    13. metadata:
    14. name: pub-oa-web-svc
    15. namespace: hunter
    16. spec:
    17. ports:
    18. - port: 8080
    19. protocal: TCP
    20. targetPort: 8080
    21. selector:
    22. app: pub-oa-web
    23. type: ClusterIP

    mysql-deploy.yaml

    1. apiVersion: apps/v1
    2. kind: Deployment
    3. metadata:
    4. name: pub-oa-db
    5. namespace: hunter
    6. spec:
    7. replicas: 1 # 指定pod的副本数量
    8. selector:
    9. matchLabels:
    10. app: pub-oa-db
    11. template:
    12. metadata:
    13. labels: # 给pod打label
    14. app: pub-oa-db
    15. spec:
    16. volumes:
    17. - name: mysql
    18. hostPath:
    19. path: /opt/mysql/data
    20. nodeSelector: # 使用节点选择器将pod调度到指定的label节点
    21. component: prod-k8s-node1 # kubectl label node prod-k8s-node1 component=prod-k8s-node1
    22. containers:
    23. - name: pub-oa-db
    24. image: rigistry.cn-shanghai.aliyuncs.com/pub-oa-db:v1
    25. imagePullPolicy: IfNotPresent # 镜像拉去策略,此外还有Always, Never
    26. ports:
    27. - containerPort: 3306
    28. env:
    29. - name: MYSQL_USER
    30. valueFrom:
    31. secretKeyRef:
    32. name: pub-oa-secret
    33. key: MYSQL_USER
    34. - name: MYSQL_ROOT_PASSWORD
    35. valueFrom:
    36. secretKeyRef:
    37. name: pub-oa-secret
    38. key: MYSQL_PASSWORD
    39. resources: # 容器资源限制
    40. requests:
    41. memory: 100Mi # 当pod内存超过100Mi时,会报OOM
    42. cpu: 50m # 当cpu超过limit限制时,不会被kill,但是会限制不超过limit值,1 CPU = 1000 millicpu(1 core = 1000m(毫核)),cpu资源是按 “时间片”的方式来分配的
    43. limits:
    44. memory: 500Mi
    45. cpu: 100m
    46. volumeMounts:
    47. - name: mysql
    48. mountPath: /var/lib/mysql

    web-deploy.yaml

    1. # overView:
    2. # 1. 添加pod驱逐策略,在某些场景下如节点 NotReady,或则资源不足时,把pod驱逐至其他节点上
    3. # 2. 添加pod更新策略
    4. apiVersion: apps/v1
    5. kind: Deployment
    6. metadata:
    7. name: pub-oa-web
    8. namespace: hunter
    9. spec:
    10. replicas: 1 # 指定pod的副本数量, 扩容web服务,kubectl scale deploy web --replicas=2
    11. selector:
    12. matchLabels: # 指定pod选择器
    13. app: pub-oa-web
    14. template:
    15. metadata:
    16. labels: # 给pod打label
    17. app: pub-oa-web
    18. spec:
    19. nodeSelector: # 使用节点选择器将pod调度到指定的label节点
    20. component: prod-k8s-node1 # kubectl label node prod-k8s-node1 component=prod-k8s-node1
    21. containers:
    22. - name: pub-oa-web
    23. image: rigistry.cn-shanghai.aliyuncs.com/pub-oa-app:v1
    24. imagePullPolicy: IfNotPresent # 镜像拉去策略,此外还有Always, Never
    25. ports:
    26. - containerPort: 8080
    27. env:
    28. - name: MYSQL_HOST
    29. valueFrom:
    30. configMapKeyRef:
    31. name: pub-oa-configmap
    32. key: MYSQL_HOST
    33. - name: MYSQL_PORT
    34. valueFrom:
    35. configMapKeyRef:
    36. name: pub-oa-configmap
    37. key: MYSQL_PORT
    38. - name: MYSQL_USER
    39. valueFrom:
    40. secretKeyRef:
    41. name: pub-oa-secret
    42. key: MYSQL_USER
    43. - name: MYSQL_PASSWORD
    44. valueFrom:
    45. secretKeyRef:
    46. name: pub-oa-secret
    47. key: MYSQL_PASSWORD
    48. livenessProbe: # 存活性探测
    49. httpGet: # 此外还有 exec,tcpSocket类型
    50. path: /code-library/listCodeLibrary
    51. port: 8080
    52. scheme: HTTP
    53. initialDelaySeconds: 10 # 容器启动后,第一次执行探测时需要等待多少秒
    54. periodSeconds: 10 # 执行探测的频率
    55. timeoutSeconds: 2 # 探测超时时间
    56. readinessProbe: # 可用性探测
    57. httpGet: # 此外还有 exec,tcpSocket类型
    58. path: /code-library/listCodeLibrary
    59. port: 8080
    60. scheme: HTTP
    61. initialDelaySeconds: 10 # 容器启动后,第一次执行探测时需要等待多少秒
    62. periodSeconds: 10 # 执行探测的频率
    63. timeoutSeconds: 2 # 探测超时时间
    64. resources: # 容器资源限制
    65. requests:
    66. memory: 100Mi # 当pod内存超过100Mi时,会报OOM
    67. cpu: 50m # 当cpu超过limit限制时,不会被kill,但是会限制不超过limit值,1 CPU = 1000 millicpu(1 core = 1000m(毫核)),cpu资源是按 “时间片”的方式来分配的
    68. limits:
    69. memory: 500Mi
    70. cpu: 100m
    71. volumeMounts:
    72. - name: mysql
    73. mountPath: /var/lib/mysql

    web-endpoint.yaml

    1. # 为pub-oa-web做节点负载均衡
    2. apiVersion: apps/v1
    3. kind: Service
    4. metadata:
    5. name: pub-oa-web-np
    6. namespace: hunter
    7. spec:
    8. ports:
    9. - port: 8080
    10. protocal: TCP
    11. targetPort: 8080
    12. selector:
    13. app: pub-oa-web
    14. type: NodePort

  • 相关阅读:
    html网站-关于发展历程的案例
    【推荐收藏】机器学习12种回归评价指标(附Python代码)
    WMS系统4.0,仓库管理的20年历史变局你知道吗?
    【HTML】播放器如何自动播放【已解决】
    五年数据库专家,带你深入高性能 MySQL 架构系统,不要等到面试再追悔莫及
    python中openpyxl库用法详解
    Pytorch学习笔记(9)——一文搞懂如何使用 torch 中的乘法
    51单片机驱动HMI串口屏,串口屏的下载方式
    猿创征文 | Docker笔记:Docker网络知识介绍
    python_data_analysis_and_mining_action-master-7
  • 原文地址:https://blog.csdn.net/qq_32944025/article/details/132740863