GKE Kubernetes クラスターに SSH 接続しますか?

GKE Kubernetes クラスターに SSH 接続しますか?

デバッグしたい GKE Kubernetes クラスターがあります。

たとえばイメージを使用してクラスター内でコンテナーを起動しubuntu、完全な権限で SSH で接続して、コンテナー内にソフトウェアをインストールしたりapt、さまざまなデバッグ コマンドを実行したりすることは可能ですか?

答え1

まず、名前空間またはノードをターゲットとするpod単一のコンテナーを使用してデプロイすることが可能です。ubuntu

SSH を使用して接続するよりも ( を使用するかLoadBalancerを公開するかのいずれかの広範な組み合わせを使用して可能NodePort)、ツールを使用する方が簡単ですkubectl

すでにインストールされている場合Cloud Shell、またはローカル ラップトップを使用している場合は、gcloudツールを使用してインストールする必要があります。

次の構文を使用してコンテナに直接接続することをお勧めします。

# Run bash on Ubuntu container
kubectl exec -it ubuntu -- bash

# General syntax
kubectl -n {namespace} exec -it {pod-name} -- {command}

最初のコマンドは、コンテナ名がubuntu現在の名前空間にあることを前提としています。 2 番目のコマンドは、一般的な形式を示します。

ubuntuポッド定義の例:

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
  labels:
    app: ubuntu
spec:
  containers:
  - image: ubuntu
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: ubuntu
  restartPolicy: Always

を追加するnamespaceか、適用する前に適切なコンテキストがあることを確認してください。次のようになります。

kubectl apply -f path/to/yaml/file

関連情報