Open z1ploc opened 3 years ago
k8sのクラスターを、マスター1台(master)、ワーカー2台(worker01, worker02)、ロードバランサー1台(lb)という構成で構築しました。 ロードバランサーにはHAProxyを用いており、kube-apiserverであるmaster(172.16.0.1:6433)へのプロキシと、各ワーカーの30080のNodePort(172.16.0.11:30080, 172.16.0.12:30080)へのロードバランシング, k8sクラスタの各ノードのデフォルトゲートウェイとしてiptablesを用いたMasqueradeを行っています。
k8sクラスタでは、nginxをreplica 数1つで展開するDeploymentと、それを外部にNodePort 30080で公開するServiceが作成されています。 このnginxに対して外部(external)からの通信においてhost01からのみアクセスできるといったアクセス制限を行うため、NetworkPolicyを用いて制限をかけたところ、host01からもアクセスできなくなってしまいました。
なぜhost01からもアクセスできないのか原因と解決方法、解決でき再起動しても問題のない作業手順を報告してください。
image
アクセス制限はNetworkPolicyを用いること k8sクラスターにはSSHなどでログインできない host01の/home/user/.kube/configにkubeconfigが保存されており、kubectlコマンドでk8sクラスタを利用できる host01の/home/user/manifestsに今回使用した各マニフェストが保存されている
host01からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる host02からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる k8sにNamespace, Deployment, Service, NetworkPolicyが適用されている
NetworkPolicyを利用してhost01からの通信のみを許可している host01からcurl -m 2 192.168.0.1:30080 を実行してk8sでデプロイしたnginxのデフォルトページを表示できる host02からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる 終了状態が永続化されている(再起動しても上記の終了状態を確認することができる)
概要
k8sのクラスターを、マスター1台(master)、ワーカー2台(worker01, worker02)、ロードバランサー1台(lb)という構成で構築しました。 ロードバランサーにはHAProxyを用いており、kube-apiserverであるmaster(172.16.0.1:6433)へのプロキシと、各ワーカーの30080のNodePort(172.16.0.11:30080, 172.16.0.12:30080)へのロードバランシング, k8sクラスタの各ノードのデフォルトゲートウェイとしてiptablesを用いたMasqueradeを行っています。
k8sクラスタでは、nginxをreplica 数1つで展開するDeploymentと、それを外部にNodePort 30080で公開するServiceが作成されています。 このnginxに対して外部(external)からの通信においてhost01からのみアクセスできるといったアクセス制限を行うため、NetworkPolicyを用いて制限をかけたところ、host01からもアクセスできなくなってしまいました。
なぜhost01からもアクセスできないのか原因と解決方法、解決でき再起動しても問題のない作業手順を報告してください。
image
前提条件
アクセス制限はNetworkPolicyを用いること k8sクラスターにはSSHなどでログインできない host01の/home/user/.kube/configにkubeconfigが保存されており、kubectlコマンドでk8sクラスタを利用できる host01の/home/user/manifestsに今回使用した各マニフェストが保存されている
初期状態
host01からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる host02からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる k8sにNamespace, Deployment, Service, NetworkPolicyが適用されている
終了状態
NetworkPolicyを利用してhost01からの通信のみを許可している host01からcurl -m 2 192.168.0.1:30080 を実行してk8sでデプロイしたnginxのデフォルトページを表示できる host02からcurl -m 2 192.168.0.1:30080 を実行してタイムアウトになる 終了状態が永続化されている(再起動しても上記の終了状態を確認することができる)