我可以通过主机名从 Kubernetes 中另一个节点上运行的另一个容器访问该容器吗?

2023-12-09

我相信我的问题很简单。我正在执行在裸机上安装 Kubernetes 集群的先决条件。

假设我有:

master- Docker DB 容器的主机名固定在第一个节点上

slave- Docker DB 容器的主机名固定在第二个节点上

我可以与master来自集群中的任何容器(应用程序等),无论它是否在同一节点上运行?

这是默认行为吗? 或者还需要做什么额外的事情吗?

我认为我需要设置hostnameYAML 或 JSON 文件中的参数,以便 Kubernetes 知道主机名是什么。

也许这不是因素,但我计划使用 Kubespray 安装方法,这样它就可以为 k8s 提供 Calico 网络。

非常感谢


Yes,

您可以从任何容器进行访问和通信namespace通过主机名。

这是一个关于 Kubernetes 的例子Service配置:

---
apiVersion: v1
kind: Service
metadata:
  name: master
  labels:
    name: master
  namespace: smart-office
spec:
  ports:
  - port: 5672
    name: master
    targetPort: 5672
  selector:
    name: master

Deployment配置:

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: master
  labels:
    name: master
  namespace: smart-office
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: master
      annotations:
        prometheus.io/scrape: "false"
    spec:
      containers:
      - name: master
        image: rabbitmq:3.6.8-management
        ports:
        - containerPort: 5672
          name: master
      nodeSelector:
        beta.kubernetes.io/os: linux

以及其他服务,例如您的slaver .env将:

AMQP_HOST=master <---- The hostname
AMQP_PORT=5672
AMQP_USERNAME=guest
AMQP_PASSWORD=guest
AMQP_HEARTBEAT=60

即使您不发布外部 IP,它也将在集群内工作。

希望这可以帮到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以通过主机名从 Kubernetes 中另一个节点上运行的另一个容器访问该容器吗? 的相关文章

随机推荐