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 をカールさせようとすると、すべて問題ありませんが、別のノードでカールさせようとすると、カール要求のタイムアウトが発生します。
どんな助けでも本当に感謝しています。