最近、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 と連携してどのように機能するかはよくわかりませんが、多くのことを試しましたが、何も機能しませんでした。これらがどのように機能するかについての説明は、大きな助けになります。ありがとう。