最近、Docker と Flannel を使用してマルチマシン Kubernetes クラスターをセットアップしました。172.16.0.0/24
の IP が割り当てられたホスト A のコンテナが、IP が割り当て172.16.78.2
られたホスト B のコンテナに ping できるように、サブネットに Flannel をセットアップしました172.16.74.2
。
kubelet
さまざまなコンポーネント ( 、kube-proxy
kube-apiserver
、kube-scheduler
、 )をすべて使用して Kubernetes をセットアップしましkube-controller-manager
た。クラスター全体でデプロイとポッドを正常に起動できます。
問題
Redis サービスと webapp ポッドをクラスターにデプロイしました。私の webapp ポッドでは、環境変数REDIS_SERVICE_HOST
とREDIS_SERVICE_PORT
が設定されていますが、サブネットREDIS_SERVICE_HOST
上のランダムな IPです。172.16.0.0/16
明確にするために、実行して Redis コンテナーifconfig
の IP アドレスを取得するとeth0
、webapp ポッドからそれを ping できます。しかし、に割り当てられた IP アドレスではありませんREDIS_SERVICE_HOST
。
これは構成上の問題であると確信していますが、各サービスに設定しているいくつかのフラグを次に示します。
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 と連携してどのように機能するかはよくわかりませんが、多くのことを試しましたが、何も機能しませんでした。これらがどのように機能するかについての説明は、大きな助けになります。ありがとう。