gpt4 book ai didi

kubernetes 如何调用完整的服务名称而不是 AWS 节点 ip

转载 作者:行者123 更新时间:2023-12-04 14:49:21 26 4
gpt4 key购买 nike

我正在运行我的应用程序 EKS 集群,几天前我们遇到了问题,假设我们有一个应用程序 pod 在不同的 AWS 节点中运行,并且有一个副本计数让我们调用 vm 名称,如下所示。

ams-99547bd55-9fp6r               1/1     Running   0          7m31s   10.255.114.81    ip-10-255-12-11.eu-central-1.compute.internal   
mongodb-58746b7584-z82nd 1/1 Running 0 21h 10.255.113.10 ip-10-255-12-11.eu-central-1.compute.internal

这是我的运行服务

NAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ams-service NodePort 172.20.81.165 <none> 3030:30010/TCP 18m
mongodb-service NodePort 172.20.158.81 <none> 27017:30003/TCP 15d

我有 setting.conf.yaml 文件作为配置映射运行,其中我有与应用程序相关的配置

apiVersion: v1
kind: ConfigMap
metadata:
name: ama-settings
labels:
conf: ams-settings
data:
config : |
"git": {
"prefixUrl": "ssh://git@10.255.12.11:30001/app-server/repos/ams/",
"author": {
"name": "app poc",
"mail": "app@domain.com"
},

"mongodb": {
"host": "10.255.12.11",
"port": "30003",
"database": "ams",
"ssl": false,
}

这正如我们预期的那样工作,但是如果我的 pod 正在运行的现有节点 ip,当我删除我正在运行的 pod 并尝试重新部署时我的 pod 被放置在其他一些地方的一些原因AWS 节点基本上是 EC2 虚拟机。

在此期间,我的应用程序无法正常工作,因此我需要编辑我的 setting.conf.yaml 文件以使用运行我的 pod 的新 AWS 节点 IP 进行更新。

这里的问题是如何使用服务名称而不是 AWS 节点 IP,因为我们不希望在任何现有 VM 出现故障时频繁更改 IP 地址。

最佳答案

理想情况下,您应该使用 0.0.0.0/0 Refrence doc 而不是使用 AWS IP

节点中的例子

const cors = require("cors");
app.use(cors());

const port = process.env.PORT || 8000;
app.listen(port,"0.0.0.0" ,() => {
console.log(`Server is running on port ${port}`);
});

但是,如果您想添加服务名称:

您可以使用完整的认证名称,但我不确定它是否可以作为主机 0.0.0.0 是更好的选择

<service.name>.<namespace name>.svc.cluster.local

例子

ams-service.default.svc.cluster.local

关于kubernetes 如何调用完整的服务名称而不是 AWS 节点 ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69309203/

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