K8s 之动态编排

大家好,我是升仔

引言

Kubernetes(K8s)是一个开源平台,用于自动部署、扩展和管理容器化应用。动态编排是K8s的核心特性之一,它使得容器的部署和管理变得自动化和灵活。

动态编排的核心概念
  1. Pods:最小部署单元,一个或多个容器的集合。
  2. Deployment:管理Pods的声明,包括副本数量和升级策略。
  3. Service:定义如何访问Pods,如负载均衡和服务发现。
  4. Ingress:管理外部访问K8s集群的规则。
  5. ConfigMap 和 Secret:存储配置信息和敏感数据。
  6. Volume:提供存储资源。
基础部署步骤
  1. 创建Deployment

    • 使用YAML文件定义Deployment。
    • 指定应用镜像、副本数量等配置。

    示例:

    复制代码
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
  2. 创建Service

    • 为部署的Pods创建Service,提供网络访问。

    示例:

    复制代码
    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
  3. 配置Ingress

    • 定义规则来外部访问服务。

    示例:

    复制代码
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      rules:
      - host: www.example.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-service
                port:
                  number: 80
动态编排的高级特性
  1. 自动扩缩容(Horizontal Pod Autoscaler)
    • 根据CPU使用率或其他指标自动增减Pod副本数量。
  2. 滚动更新和版本回滚
    • 无中断更新应用,并在需要时回滚到之前的版本。
  3. 配置管理
    • 使用ConfigMap和Secret来管理应用配置和敏感数据。
具体案例

假设我们有一个基于Web的应用,需要在K8s上进行部署、扩展和管理。

  1. 部署Web应用
    • 创建Deployment和Service。
    • 配置Ingress以允许外部流量。
  2. 自动扩缩容
    • 定义HPA以根据流量自动调整Pod副本数量。
  3. 配置更新和管理
    • 使用ConfigMap管理应用配置。
    • 使用Secret管理敏感信息。
  4. 滚动更新
    • 更新Deployment以使用新版本的应用镜像。
    • 自动进行滚动更新,无需停机。
结语

K8s的动态编排能力使得容器化应用的部署、管理和扩展变得自动化和高效。它不仅提供了高度的灵活性和可扩展性,而且还支持了复杂应用的可靠运行。无论是简单的应用还是复杂的微服务架构,K8s都是一个理想的选择。

最后说一句(求关注,求赞,别白嫖)

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。

这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文已收录于我的技术网站,next-java.com, 有大厂完整面经,工作技术等经验分享

求一键三连:点赞、分享、收藏

点赞对我真的非常重要!在线求赞,加个关注非常感激

相关推荐
2401_836836599 小时前
k8s配置管理
云原生·容器·kubernetes
一切顺势而行9 小时前
k8s 使用docker 安装教程
docker·容器·kubernetes
霖檬ing9 小时前
K8s——配置管理(1)
java·贪心算法·kubernetes
澜兮子9 小时前
k8s-服务发布基础
云原生·容器·kubernetes
小安运维日记9 小时前
CKS认证 | Day4 最小化微服务漏洞
安全·docker·微服务·云原生·容器·kubernetes
2401_836836599 小时前
k8s服务发布进阶
云原生·容器·kubernetes
裁二尺秋风11 小时前
CI/CD — DevOps概念之实现k8s持续交付持续集成(一)
ci/cd·kubernetes·devops
云上小朱14 小时前
问题处理-k8s环境中,hadoop端口9000无法被访问
kubernetes
容器魔方15 小时前
开源之夏2025 | Karmada 社区中选学生名单公布!
云原生·容器·云计算
goxingman17 小时前
关于使用idea打包的时候报错,Maven提示乱码java: �Ҳ�������
java·maven·intellij-idea