プライベート・クラウド・サービス・エンドポイントを介したクラシック・クラスターへのアクセス
IBM Cloud Kubernetes Service Classic クラスターで、プライベートクラウドサービスのエンドポイントのみが有効になっている場合、クラスターにアクセスするには、プライベート NLB を通じてマスターエンドポイントを公開し、VPN 接続を介して IBM Cloud のクラシックプライベートネットワークに接続する必要があります。
開始前に
- 必要なCLIツールをインストールしてください。
- xml-ph-0000@deepl.internalのクラシックプライベートネットワークへの Virtual Private Network (VPN) for VPCIBM Cloud Classicのプライベートネットワークへの接続を設定します。
- クラスタが正常に動作していることを確認してください:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID。
プライベートNLBを介してマスターエンドポイントを公開する
プライベートネットワーク経由でクラスタマスターに接続するには、プライベートNLBを介してプライベートクラウドサービスのエンドポイントを公開する必要があります。
-
クラスターのプライベート・クラウド・サービス・エンドポイント URL およびポートを取得します。
ibmcloud ks cluster get -c CLUSTER_NAME_OR_IDこの出力例では、プライベート・サービス・エンドポイント URL は
https://c1.private.us-east.containers.cloud.ibm.com:25073です。NAME: setest ID: b8dcc56743394fd19c9f3db7b990e5e3 State: normal Status: healthy cluster Created: 2019-04-25T16:03:34+0000 Location: wdc04 Master URL: https://c1.private.us-east.containers.cloud.ibm.com:25073 Public Service Endpoint URL: - Private Service Endpoint URL: https://c1.private.us-east.containers.cloud.ibm.com:25073 Master Location: Washington D.C. ... -
kube-api-via-nlb.yamlという名前の YAML ファイルを作成します。 この YAML はプライベートLoadBalancerサービスを作成し、NLB を介してプライベート・クラウド・サービス・エンドポイントを公開します。<private_service_endpoint_port>を、先述の手順で確認したポートに置き換えます。apiVersion: v1 kind: Service metadata: name: kube-api-via-nlb annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private namespace: default spec: type: LoadBalancer ports: - protocol: TCP port: 8080 # Or, the <private_service_endpoint_port> that you found earlier. targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. --- kind: Endpoints apiVersion: v1 metadata: name: kube-api-via-nlb subsets: - addresses: - ip: 172.20.0.1 ports: - port: 2040 -
プライベート NLB を作成するには、クラスター・マスターに接続する必要があります。 VPNや IBM Cloud Direct Link からは、現時点ではプライベートクラウドサービスエンドポイント経由で接続できないため、パブリッククラウドサービスエンドポイントまたはダッシュボードを使用して、クラスタマスターに接続し、NLBを作成する必要があります。
-
プライベートクラウドサービスのエンドポイントのみを有効にしている場合は、 Headlampダッシュボード を使用してNLBを作成できます。 Headlampは、すべてのリクエストをマスターのプライベートクラウドサービスのエンドポイントに転送します。
- [クラスタ]ページで、アクセスしたいクラスタをクリックします。
- Ingressのサブドメインを取得するには:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain"。 - ブラウザで
https://headlamp.<ingress_subdomain>を開き、サインインして、 [+] > [ YAMLのアップロード ] の順に選択します。 - 「
kube-api-via-nlb.yaml」ファイルをアップロードし、「 適用 」をクリックします。 - 「 ネットワーク」>「サービス 」に移動し、「
kube-api-via-nlb」サービスが作成されていることを確認し、「10.x.x.x」 の外部IPアドレスをメモしておきます。 この IP アドレスは、YAML ファイルで指定したポートで Kubernetes マスターのプライベート・クラウド・サービス・エンドポイントを公開します。
-
パブリック・クラウド・サービス・エンドポイントも有効にした場合は、既にマスターにアクセスできます。
- クラスターの
kubeconfig構成ファイルをダウンロードし、kubeconfigの既存の~/.kube/configに追加するか、KUBECONFIG環境変数の最後のファイルに追加します。ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID - NLB およびエンドポイントを作成します。
kubectl apply -f kube-api-via-nlb.yaml kube-api-via-nlbNLB が作成されていることを確認します。 出力の10.x.x.xEXTERNAL-IP** アドレス ** をメモします。 この IP アドレスは、YAML ファイルで指定したポートで Kubernetes マスターのプライベート・クラウド・サービス・エンドポイントを公開します。
この出力例では、Kubernetes マスターのプライベート・クラウド・サービス・エンドポイントの IP アドレスはkubectl get svc -o wide10.186.92.42です。NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-api-via-nlb LoadBalancer 172.21.150.118 10.186.92.42 443:32235/TCP 10m <none> ...
- クラスターの
-
-
自分自身またはユーザーが
kubectlコマンドを実行するクライアント・マシンで、NLB IP アドレスとプライベート・クラウド・サービス・エンドポイント URL を/etc/hostsファイルに追加します。 IP アドレスと URL にポートを含めたり、URL にhttps://を含めたりしないでください。- macOS と Linux のユーザーの場合:
sudo nano /etc/hosts ``` * Windows ユーザーの場合: ```sh {: pre} notepad C:\Windows\System32\drivers\etc\hosts ``` ローカル・マシンの権限によっては、ホスト・ファイルを編集するためにノートパッドを管理者として実行しなければならない場合があります。 ```sh {: codeblock} 10.186.92.42 c1.private.us-east.containers.cloud.ibm.com ``` -
VPN または IBM Cloud Direct Link 接続を介してプライベート・ネットワークに接続していることを確認します。
-
クラスターの
kubeconfig構成ファイルをダウンロードし、kubeconfigの既存の~/.kube/configに追加するか、KUBECONFIG環境変数の最後のファイルに追加します。ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private -
kubectlコマンドが正しく実行され、Kubernetesコンテキストがクラスターに設定されていることを確認します。kubectl config current-context出力例
<cluster_name>/<cluster_ID>