我们已经配置了一个kubernetes集群,其中我们使用Spring Boot部署了各种服务,而我们有一个服务就是Spring Cloud Config Server。
我们的麻烦在于,当我们启动集群时,所有服务都尝试连接到配置服务器以下载配置,并且由于Config Server尚未启动,所有服务都失败了,从而导致kubernetes重试初始化并消耗了大量资源。资源,以使其自身的配置服务器无法启动。
我们想知道是否有一种方法可以初始化所有服务,而不会使集群超载,或者使它们迅速等待配置服务器启动。到目前为止,所有服务都已启动,我们必须等待大约20分钟,直到群集正常工作。
预先感谢
答案 0 :(得分:2)
您可以使用Init Containers ping服务器,直到它联机。一个例子是:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
selector:
matchLabels:
app: web
replicas: 1
template:
metadata:
labels:
app: web
spec:
initContainers:
- name: wait-config-server
image: busybox
command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 config-server 8080 && exit 0 || sleep 3; done; exit 1"]
containers:
- name: web
image: my-mage
ports:
- containerPort: 80
...
在此示例中,我使用nc命令对服务器执行ping操作,但您也可以使用wget,curl或最适合您的命令。
答案 1 :(得分:1)
它们有多种选择可用于执行相同操作。选择最适合您的一种: