gpt4 book ai didi

kubernetes - 我们如何使用 kubernetes 创建服务依赖项

转载 作者:行者123 更新时间:2023-12-04 00:11:14 25 4
gpt4 key购买 nike

我有 2 个服务。一个包含用于 Web 应用程序的 2 个 pod 副本,该应用程序依赖于另一个具有用于 MySQL 容器的 pod(2 个副本)的后端服务。

Web 应用程序使用后端 DB 服务设置的环境变量。我将所有 json 都放在同一个目录中。

有什么方法可以表达依赖关系,以便 kubectl 始终在启动 Web 应用程序服务之前创建(并运行)后端 pod 和服务?我已经使用 kubedeam 创建了集群。

最佳答案

我可以建议两种解决方案:

首先,将 init 容器附加到 Web 服务器,等待 MySQL 启动并运行。部署将是这样的:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
selector:
matchLabels:
app: web
replicas: 2
template:
metadata:
labels:
app: web
spec:
initContainers:
- name: init-wait
image: alpine
command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 mysql 3306 && exit 0 || sleep 3; done; exit 1"]
containers:
- name: web
image: web-server
ports:
- containerPort: 80
protocol: TCP

它使用 netcat 每 3 秒尝试在端口 3306 上启动一个到 mysql 服务的 TCP 连接。一旦连接成功,init-container 结束,web 服务器正常启动。

第二个选项是使用 Mirantis AppController .它允许您根据需要在服务器和数据库部署之间创建依赖对象。检查他们的 repo 以获取完整的文档。

关于kubernetes - 我们如何使用 kubernetes 创建服务依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com