![](/img/trans.png)
[英]How do I reach a container through the host's hostname from another container?
[英]Can I reach a container by it's hostname from another container running on another node in Kubernetes?
我相信我的問題很簡單。 我正在做我在裸機上安裝Kubernetes集群的先決條件。
比方說我有:
master - 在第一個節點上修復的Docker DB容器的主機名
slave - Docker DB容器的主機名,它固定在第二個節點上
我是否可以從群集中的任何容器(應用程序等)與master通信,無論它是否在同一節點上運行?
這是默認行為嗎? 還是應該做任何額外的事情?
我假設我需要在YAML或JSON文件中設置hostname
參數,以便Kubernetes知道主機名是什么。
可能這不是因素,但我打算使用Kubespray安裝方法,因此它可以獲得k8s的Calico網絡。
非常感謝
是,
您可以通過主機名從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,它也可以在集群內部工作。
希望這可以幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.