すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:クラウドエッジO&M通信コンポーネントトンネルの概要

最終更新日:Nov 11, 2024

デフォルトでは、Container Service for Kubernetes (ACK) は、Kubernetesバージョンが1.26より前のACK edgeクラスターを作成した後に、edge-tunnel-serverおよびEdge-tunnel-agentコンポーネントをデプロイします。 これらのコンポーネントは、クラウドからエッジへのトンネルを確立するために使用されます。 トンネルが確立されると、クラウドからエッジノードにアクセスできます。 このトピックでは、ACK edgeクラスターのクラウドエッジトンネルに関連するコンポーネントの機能と、エッジノードのモニタリング機能を拡張する方法について説明します。

背景情報

  • Kubernetes 1.26以降を実行するACK Edgeクラスターを作成すると、Ravenがクラスターにインストールされます。 このコンポーネントを使用すると、クラウドからエッジノードにアクセスできます。 詳細については、「クラウドエッジ通信コンポーネントRavenの操作」をご参照ください。

  • Kubernetesクラスターでは、クラウド内のコントローラーコンポーネントがコマンドを実行し、メンテナンス要求をエッジノードのkubeletに渡す必要があります。 モニタリングコンポーネントmetrics-serverは、エッジノードからクラウドにモニタリングデータを収集する必要があります。 ACK edgeクラスターのエッジノードが内部ネットワークにデプロイされている場合、クラウドからエッジノードに直接アクセスすることはできません。

  • edge-tunnel-serverコンポーネントは、クラウド内のノードにデプロイとしてデプロイされます。 edge-tunnel-agentコンポーネントは、各エッジノードにDaemonSetとしてデプロイされます。

  • kubectl logsやkubectl execなどのKubernetesコマンド、またはmetrics-serverのコマンドを実行してO&M操作を実行すると、エッジノードのkubeletのポート10250とポート10255にリクエストが送信されます。

説明

  • ACK Edgeクラスターを作成するときは、少なくとも1つのECS (Elastic Compute Service) インスタンスを作成して、edge-tunnel-serverコンポーネントをデプロイする必要があります。

  • インターネット上で安全で暗号化されたトンネルを確立するために、システムはedge-tunnel-Serverによって作成されたサービスのserver Load Balancer (SLB) インスタンスを作成します。 エッジノード上のedge-tunnel-agentコンポーネントは、SLBインスタンスを介してedge-tunnel-serverへのトンネルを確立します。

  • kube-apiserverやmetrics-serverなどのコンポーネントが、クラウドからエッジノードのポート10250とポート10255にアクセスすると、ACK edgeクラスターが要求をEdge-tunnel-serverに転送します。 コンポーネントを変更する必要はありません。

  • 次の図は、クラウドエッジトンネリングの仕組みを示しています。G-11

説明
  • エッジノードがクラウドから切断されているか、ネットワーク接続が弱い場合、トンネルは通常どおりに機能しない可能性があります。

  • トンネルが確立されているSLBインスタンスを削除または停止した場合、トンネルは通常どおりに機能しません。

  • 1.16.9-aliyunedge.1などの初期のKubernetesバージョンのACK Edgeクラスターの場合、edge-tunnel-serverがデプロイされているECSノードにmetrics-serverなどのコンポーネントをデプロイする必要があります。 そうでない場合、コンポーネントはエッジノードにアクセスできません。 1.18.8-aliyunedge.1以降のACK Edgeクラスターの場合、metrics-serverやedge-tunnel-serverなどのコンポーネントを異なるECSノードにデプロイできます。

エッジノードの10250および10255以外のポートへのアクセスを設定する

ビジネスをクラウドに移行すると、ビジネスの監視システムもクラウドに移行されます。 エッジノードからクラウドへのシームレスな移行とモニタリングデータの収集を確実にするには、10250以外のポートへのアクセスと、クラウドのエッジノードの10255を設定する必要があります。 この例では、エッジノード上のポート9051および9052が使用される。

説明

この例では、edge-tunnel-serverはHTTP経由でポート9051をリッスンし、HTTPS経由でポート9052をリッスンします。

1.18.8のクラスター-aliyunedge.1

1.18.8-aliyunedge.1のクラスターでは、コンポーネントが10250および10255以外のポートを介してエッジノードからクラウドにモニタリングデータを収集する場合、HTTPのみがサポートされます。 kube-system名前空間のedge-tunnel-server-cfg ConfigMapのdnat-ports-pairフィールドの値を変更する必要があります。 ポート番号=10264の形式で値を設定します。

コンポーネントがクラウドからエッジノードのポート9051にアクセスできるようにするには、次の設定を使用します。

cat <<EOF | kubectl apply -f
apiVersion: v1
data:
  dnat-ports-pair: '9051=10264'
kind: ConfigMap
metadata:
  name: edge-tunnel-server-cfg
  namespace: kube-system
EOF

1.20.11のクラスター-aliyunedge.1

1.20.11-aliyunedge.1のクラスターでは、コンポーネントが10250とHTTPS以外のポートを介してエッジノードからクラウドにモニタリングデータを収集する場合、HTTPと10255がサポートされます。 コンポーネントは、クラウドからエッジノード上のlocalhostエンドポイントにアクセスすることもできます。

  • HTTP経由で10250および10255以外のポートへのアクセスを有効にするには、kube-system名前空間のedge-tunnel-server-cfg ConfigMapのhttp-proxy-portsフィールドを設定します。 次の形式で値を設定します: ポート1、ポート2。

  • HTTPS経由で10250および10255以外のポートへのアクセスを有効にするには、kube-system名前空間のedge-tunnel-server-cfg ConfigMapのhttps-proxy-portsフィールドを設定します。 次の形式で値を設定します: ポート1、ポート2。

  • エッジノードのlocalhostエンドポイントへのアクセスを有効にするには、kube-system名前空間のedge-tunnel-server-cfg ConfigMapでlocalhost-proxy-portsフィールドを設定します。 デフォルト値: 10250、10255、10266 10267 さらにポートを追加できます。

コンポーネントが、ポート9051および9052を介してエッジノードからクラウドにモニタリングデータを収集し、エッジノード上のlocalhostエンドポイント (https:// 127.0.0.1:8080など) にアクセスできるようにするには、次の設定を使用します。

cat <<EOF | kubectl apply -f
apiVersion: v1
data:
  http-proxy-ports: "9051"
  https-proxy-ports: "9052, 8080"
  localhost-proxy-ports: "10250, 10255, 10266, 10267, 8080"
kind: ConfigMap
metadata:
  name: edge-tunnel-server-cfg
  namespace: kube-system
EOF