簡體   English   中英

與Kubernetes和Flannel進行Pod到服務的通信

[英]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及其所有各個組件( kubeletkube-proxy kube-apiserverkube-schedulerkube-controller-manager ),並且可以成功啟動集群周圍的部署和Pod。

問題

我將Redis服務和Webapp pod部署到了集群上。 在我的webapp窗格上,設置了環境變量REDIS_SERVICE_HOSTREDIS_SERVICE_PORT ,但是REDIS_SERVICE_HOST172.16.0.0/16子網中的隨機IP。 要明確的是,如果我運行ifconfig並在Redis容器中獲取eth0的IP地址,則可以從我的webapp pod中對其進行ping操作。 但不是分配給REDIS_SERVICE_HOST的IP地址。

我可以肯定這是一個配置問題,但是下面是我為每種服務設置的一些標志:

kube-proxy參數

  • --cluster-cidr 172.16.0.0/16

kube-apiserver參數

  • --service-cluster-ip-range=172.16.0.0/16

kube-controller-manager參數

  • --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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM