[英]Pod-to-service communication with Kubernetes and Flannel
我最近建立了一個帶有Docker和Flannel的多機器Kubernetes集群。 我已經在子網172.16.0.0/24
上設置了Flannel,以便主機A上的IP分配為172.16.78.2
的容器可以ping通主機B上的IP分配為172.16.74.2
。
我已經設置了Kubernetes及其所有各個組件( kubelet
, kube-proxy
kube-apiserver
, kube-scheduler
, kube-controller-manager
),並且可以成功啟動集群周圍的部署和Pod。
我將Redis服務和Webapp pod部署到了集群上。 在我的webapp窗格上,設置了環境變量REDIS_SERVICE_HOST
和REDIS_SERVICE_PORT
,但是REDIS_SERVICE_HOST
是172.16.0.0/16
子網中的隨機IP。 要明確的是,如果我運行ifconfig
並在Redis容器中獲取eth0
的IP地址,則可以從我的webapp pod中對其進行ping操作。 但不是分配給REDIS_SERVICE_HOST
的IP地址。
我可以肯定這是一個配置問題,但是下面是我為每種服務設置的一些標志:
--cluster-cidr 172.16.0.0/16
--service-cluster-ip-range=172.16.0.0/16
--cluster-cidr=172.16.0.0/16
--service-cluster-ip-range=172.16.0.0/16
我不太確定上面的標志如何與Flannel一起使用,但是我嘗試了很多事情,但是我什么也做不了。 對這些事情如何工作的一些解釋將有很大的幫助。 謝謝。
因此,在玩轉並閱讀了更多的問題之后,我發現這里根本沒有問題。 從這里https://github.com/kubernetes/kubernetes/issues/7996 ,我了解到ping服務無濟於事。 到目前為止,我實際上還沒有嘗試過連接到該服務,但是我做到了,它確實有效。
上面,我使用的CIDR為172.16.0.0/16
,這是Flannel子網。 這是錯誤的,它實際上應該與Flannel的子網不重疊。 我將驗證所有這些內容,並確保它可以在多個節點上運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.