• k8s之无状态服务Deployment1


    一、Deployment

    1、Deployment概念

    用于部署无状态的服务,这个最常用的控制器。一般用于管理维护企业内部无状态的微服务,比如configserver、zuul、springboot。他可以管理多个副本的Pod实现无缝迁移、自动扩容缩容、自动灾难恢复、一键回滚等功能。

    2、Deployment创建方式

    (1)手动创建

    kubectl create deployment nginx --image=nginx:1.15.2
    

     导出yaml文件

    kubectl get deployment nginx -o yaml > nginx-deploy.yaml
    
    1. kubectl run nginx-dp --image=nginx --port=80 --replicas=3 --dry-run -o yaml
    2. 无控制器yaml文件导出

     (2)基于文件创建

    vim nginx-deploy.yaml
    
    1. apiVersion: apps/v1 #指定api版本标签
    2. kind: Deployment #定义资源的类型/角色,deployment 为副本控制器,此处资源类型可以是Deployment、Job、 Ingress、 Service等
    3. metadata: #定义资源的元数据信息,比如资源的名称、namespace、标签等信息
    4. annotations:
    5. deployment.kubernetes.io/revision: "1"
    6. creationTimestamp: "2022-07-31T11:36:37Z"
    7. generation: 1 #相同的pod有几个
    8. labels:
    9. app: nginx
    10. manager: kubectl-create
    11. operation: Update
    12. time: "2022-07-31T11:36:37Z"
    13. - apiVersion: apps/v1
    14. fieldsType: FieldsV1
    15. manager: kube-controller-manager
    16. operation: Update
    17. time: "2022-07-31T11:36:49Z"
    18. name: nginx
    19. namespace: default
    20. resourceVersion: "84720"
    21. selfLink: /apis/apps/v1/namespaces/default/deployments/nginx
    22. uid: ee57150d-2912-411f-92f2-39538174d921
    23. spec:
    24. progressDeadlineSeconds: 600 #判断线程是否存活的时间
    25. replicas: 2 #定义副本数量
    26. revisionHistoryLimit: 10 #历史记录保留次数
    27. selector:
    28. matchLabels:
    29. app: nginx
    30. strategy:
    31. rollingUpdate:
    32. maxSurge: 25% #临时有不可用的pod最大为25%
    33. maxUnavailable: 25% #临时有不可用的pod最大为25%
    34. type: RollingUpdate
    35. template:
    36. metadata: #定义资源的元数据信息
    37. creationTimestamp: null
    38. labels: #定义资源标签(Pod的标签)
    39. app: nginx #匹配上面的标签,需与上面的标签定义的app保持一致
    40. spec:
    41. containers: #定义容器属性
    42. - image: nginx:1.15.2 #定义容器使用的镜像以及版本
    43. imagePullPolicy: IfNotPresent
    44. name: nginx
    45. resources: {}
    46. terminationMessagePath: /dev/termination-log
    47. terminationMessagePolicy: File
    48. dnsPolicy: ClusterFirst
    49. restartPolicy: Always
    50. schedulerName: default-scheduler
    51. securityContext: {}
    52. terminationGracePeriodSeconds: 30
    53. status:
    54. availableReplicas: 1
    55. conditions:
    56. - lastTransitionTime: "2022-07-31T11:36:49Z"
    57. lastUpdateTime: "2022-07-31T11:36:49Z"
    58. message: Deployment has minimum availability.
    59. reason: MinimumReplicasAvailable
    60. status: "True"
    61. type: Available
    62. - lastTransitionTime: "2022-07-31T11:36:37Z"
    63. lastUpdateTime: "2022-07-31T11:36:49Z"
    64. message: ReplicaSet "nginx-66bbc9fdc5" has successfully progressed.
    65. reason: NewReplicaSetAvailable
    66. status: "True"
    67. type: Progressing
    68. observedGeneration: 1
    69. readyReplicas: 1
    70. replicas: 1 #定义副本数量
    71. updatedReplicas: 1

     3、deployment状态解析

    kubectl get deploy -owide

     参数详情

    NAME:deployment名称

    READY:Pod的状态,已经Ready的个数

    UP-TO-DATE:已经达到期望状态的被更新的副本数

    AVALABLE:已经可以用的副本数

    AGE:显示应用程序运行的时间

    CONTAINERS:容器名称

    IMAGES:容器的镜像

    SELECTOR:管理的Pod的标签

  • 相关阅读:
    【PAT 1033】 To Fill or Not to Fill 贪心算法&模拟
    这个选择,是一笔划算的投资
    【Java编程】14_java8新特性之Steam
    Nginx基础篇-Nginx的日志模块
    学会这个Python技能,就可以跟excel说再见了
    是不是所有的低代码产品都能解决真实问题
    Android registerForActivityResults使用详解以及实现原理
    情绪的变化需要控制
    Camera ITS当中的test_lens_shading_and_color_uniformity测试
    Flink学习19:算子介绍keyBy
  • 原文地址:https://blog.csdn.net/m0_58292366/article/details/126088953