对于 primary 和 secondary,您可以将 environment 变量传递给 POD,然后根据该 POD 以相应的配置开始。 p>
import java.util.Map;
public class EnvMap {
public static void main (String[] args) {
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
}
}
您可以在 K8s 中创建两个不同的部署,一个用于主节点,第二个用于辅助节点。
k8s pod部署时如何设置primary的值
有多个副本?
您可以设置在 Primary 的所有副本和辅助的不同环境变量中相同的环境变量。
我们如何处理应用程序 pod 主实例的故障?
您可以使用 readiness 和 liveness 探针进行部署,因此如果发生任何故障,K8s 将自动重启 POD。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
如果可以在 K8s 中创建两个部署
apiVersion: apps/v1
kind: deployment
metadata:
name: primary
labels:
purpose: primary
spec:
containers:
- name: primary
image: gcr.io/google-samples/node-hello:1.0
env:
- name: primary
value: "True"
第二次部署环境变量会像
apiVersion: apps/v1
kind: deployment
metadata:
name: secondary
labels:
purpose: secondary
spec:
containers:
- name: secondary
image: gcr.io/google-samples/node-hello:1.0
env:
- name: secondary
value: "False"
如果您使用的是有状态集,如果不使用部署,您也可以在其中配置相同的设置。