問題タブ [project-calico]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - POD のホストでのみ到達可能な Kubernetes サービス
KUBEADM (CentOS 7 を実行する Intel NUC を使用した buildt) がインストールされた 3 ノードのベアメタル クラスターがあります。
マスター ノードには 2 つの異なるネットワーク インターフェイスが提供されます。1 つは外部アクセス用で、もう 1 つはクラスター ローカル ネットワークの DHCP サーバーとして構成されます。2 つのネットワーク間の IP 転送とマスカレードは、次の iptables ルールによって有効になります。
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i {{lan_interface_name}} -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o {{wan_interface_name}} -j MASQUERADE
iptables -A FORWARD -i {{wan_interface_name}} -o {{lan_interface_name}} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i {{lan_interface_name}} -o {{wan_interface_name}} -j ACCEPT
さらに、クラスター内のすべてのノードの docker インターフェースと lan インターフェース間の転送も有効にしました
iptables -I INPUT -i docker0 -j ACCEPT
iptables -t nat -A POSTROUTING -o {{lan_interface_name}} -j MASQUERADE
iptables -I FORWARD -i {{lan_interface_name}} -o docker0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i docker0 -o {{lan_interface_name}} -j ACCEPT
iptables に問題がないことを確認するために、デフォルトですべてのトラフィックを有効にしました
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
これは /etc/sysctl.conf ファイルですが、
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
kubeadm の指示に従って CALICO ( https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ ) を使用してクラスターを起動しましたが、(kube-dns でさえすべての POD から到達可能であることを除いて) すべてが正常に機能しているようですすべてのノードで) 公開されたサービス用。
テストのためだけに、nginx デプロイメントを作成し、ノードポートを介して公開しました。
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30m
nginx NodePort 10.96.227.49 <none> 80:31242/TCP 22m
POD の同じノード内でクラスター IP をカールさせようとすると、すべて問題ありませんが、別のノードでカールさせようとすると、カール要求のタイムアウトが発生します。
どんな助けでも本当に感謝しています。
kubernetes - ネットワーク ポリシー ホワイトリスト IP
IBM Cloud で Kubernetes を使用しており、イングレスに適用されるホワイトリスト ポリシーを作成しようとしています。
kubernetes ポリシーを作成するために calico をインストールしました https://console.bluemix.net/docs/containers/cs_network_policy.html#network_policies
このチュートリアルに従ってください https://console.bluemix.net/docs/containers/cs_tutorials_policies.html#lesson2
IP ソースの保存も有効にしました: https://console.bluemix.net/docs/containers/cs_ingress.html#preserve_source_ip
ポリシーがロードバランサーに直接適用された場合はうまく機能しますが、イングレスに適用された場合は機能しません。
これは、着信 IP アドレスがイングレスの内部 IP アドレスにマッピングされているためです。
このため、ロードバランサーは IP を許可されたものとして認識せず (イングレスの IP アドレスがホワイトリストにないため)、接続がブロックされます。
この問題を解決するにはどうすればよいですか?