1つのマスターと2つのノードを持つベアメタルサーバー上にk8sクラスターを作成するとします。マスターとノードがインターネット経由で通信できるようにするには、ファイアウォールでどのポートを開く必要がありますか? (VPNを使用できることはわかっていますが、必要なポートを知りたいだけです)。少なくとも次のポートが必要だと思います。もっと必要ですか? FlannelまたはCalicoを使用している場合はどうですか?すべての可能なk8sサービスと必要なポートの包括的リストを作成したいと思います。ありがとうございました。
kubectl-8080
ui-80または443または9090
etcd-2379、2380
Kubernetesのニーズ:
マスターノード:
TCP 6443* Kubernetes API Server
TCP 2379-2380 etcd server client API
TCP 10250 Kubelet API
TCP 10251 kube-scheduler
TCP 10252 kube-controller-manager
TCP 10255 Read-Only Kubelet API
ワーカーノード(ミニオン):
TCP 10250 Kubelet API
TCP 10255 Read-Only Kubelet API
TCP 30000-32767 NodePort Services
APIサーバー、etcd、スケジューラー、コントローラーマネージャーを同じマシンで実行する場合、VPNがない場合に公開する必要があるポートは次のとおりです。
6443(またはTLSが無効になっている場合は8080)
ノード(kubelet、kube-proxy、ポッド)およびユーザー(kubectl、...)からAPIサーバーへのクライアント接続
10250(デフォルトでは安全ではありません!)
Kubeletポート。APIサーバー(マスター)からの接続を受け入れます。
また、ノードはKubernetesポッド(フランネル、ウィーブ、キャリコなど)に使用されるネットワークファブリック上の他のノードおよびほとんどすべてのポートのマスターからトラフィックを受信できる必要があります。
NodePortサービスまたはIngressリソースを使用してアプリケーションを公開する場合、対応するポートもノードで開いている必要があります。