Kubernetes 集群复制控制器内 Pod 的自动重启 展示了如果一个或多个现有 Pod 由于某种原因消失,Kubernetes 如何重新安排集群中的 Pod。这是一种常见的使用模式,也是 Kubernetes 的关键特性之一。
Replication Controller 的另一种常见使用模式是缩放:
通过简单地更新 replicas 字段,复制控制器可以轻松地手动或通过自动缩放控制代理来增加或减少副本的数量。
这篇博客将展示如何轻松地扩展和缩减 Kubernetes 集群。
本博客中使用的所有代码都可以在 kubernetes-java-sample 中找到。
启动 Replication Controller 并验证
-
启动一个 Replication Controller 作为:
-
获取 Pod 的状态:
- 获取复制控制器的状态:
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
确保等待状态更改为正在运行。记下 Pod 的名称为 wildfly-rc-bgtkg” 和 wildfly-rc-bgtkg”。
./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。
- 增加 Pod 的数量:
-
可以在另一个 shell 中看到 Pod 的状态:
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
请注意,已创建一个名为
wildfly-rc-aqaqn
的新 Pod。
缩减 Kubernetes 集群
- 缩减 Pod 的数量:
-
使用
-w
的 Pod 状态未正确更新 ( #11338 )。但是可以正确地将 Pod 的状态视为:
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
./cluster/kubectl.sh create -f ~/workspaces/kubernetes-java-sample/wildfly-rc.yaml
replicationcontrollers/wildfly-rc
请注意,现在只有一个 Pod 正在运行。
Kubernetes 使用
scale --replicas
命令动态扩展和缩减 Pod。
本博客中使用的所有代码都可以在 kubernetes-java-sample 中找到。