我相信我的问题很简单。我正在做在裸机上安装Kubernetes集群的先决条件。
假设我有:
主 -主机名泊坞DB容器,其被固定第一节点上
从属 -主机名泊坞DB容器,其被固定第二个节点上
我是否可以从群集中的任何容器(应用程序等)与 master 通信,而不管它是否在同一节点上运行?
这是默认行为吗?还是应该做其他的事情?
我假设我需要hostname在YAML或JSON文件中设置参数,以便Kubernetes知道主机名是什么。
hostname
可能这不是因素,但我计划使用Kubespray安装方法,以便为k8s获得Calico网络。
非常感谢
是,
您可以namespace通过主机名从任何容器访问和通信。
namespace
这是有关Kubernetes Service配置的示例:
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 配置:
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将:
slaver
.env
AMQP_HOST=master <---- The hostname AMQP_PORT=5672 AMQP_USERNAME=guest AMQP_PASSWORD=guest AMQP_HEARTBEAT=60
即使您不发布外部IP,它也可以在群集中使用。
希望这可以帮到你。