扩展 Kubernetes 集群

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Kubernetes 集群复制控制器内 Pod 的自动重启 展示了如果一个或多个现有 Pod 由于某种原因消失,Kubernetes 如何重新安排集群中的 Pod。这是一种常见的使用模式,也是 Kubernetes 的关键特性之一。

Replication Controller 的另一种常见使用模式是缩放:

通过简单地更新 replicas 字段,复制控制器可以轻松地手动或通过自动缩放控制代理来增加或减少副本的数量。

这篇博客将展示如何轻松地扩展和缩减 Kubernetes 集群。

本博客中使用的所有代码都可以在 kubernetes-java-sample 中找到。

启动 Replication Controller 并验证

  1. 启动一个 Replication Controller 作为:

  2. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    
  3. 获取 Pod 的状态:

  4. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    

    确保等待状态更改为正在运行。记下 Pod 的名称为 wildfly-rc-bgtkg” 和 wildfly-rc-bgtkg”。

  5. 获取复制控制器的状态:
  6. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    

    如果多个 Replication Controllers 正在运行,那么您可以使用标签查询这个特定的控制器:

    
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    

扩展 Kubernetes 集群

Replication Controller 允许动态扩展和缩小 Pod。

  1. 增加 Pod 的数量:
  2. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    
  3. 可以在另一个 shell 中看到 Pod 的状态:

  4. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    

    请注意,已创建一个名为 wildfly-rc-aqaqn 的新 Pod。

缩减 Kubernetes 集群

  1. 缩减 Pod 的数量:
  2. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    
  3. 使用 -w 的 Pod 状态未正确更新 ( #11338 )。但是可以正确地将 Pod 的状态视为:
  4. 
     ./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml 
    replicationcontrollers/wildfly-rc
    

    请注意,现在只有一个 Pod 正在运行。

Kubernetes 使用 scale --replicas 命令动态扩展和缩减 Pod。

本博客中使用的所有代码都可以在 kubernetes-java-sample 中找到。