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, 有大厂完整面经,工作技术等经验分享

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

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

相关推荐
阿里云云原生1 天前
研发视角的新突破:当 AI Coding 工具集成全域运维诊断,排查线上故障只需 3 分钟
云原生
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
阿里云云原生2 天前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生3 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
阿里云云原生4 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生4 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事6 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson8 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生8 天前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程
探索云原生8 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes