SSH no cluster do GKE Kubernetes?

SSH no cluster do GKE Kubernetes?

Tenho um cluster do GKE Kubernetes que gostaria de depurar.

É possível iniciar um contêiner dentro do cluster usando, por exemplo, ubuntuimagem e SSH com privilégios totais, para que eu possa instalar software dentro dele apte executar vários comandos de depuração?

Responder1

Primeiro de tudo, é possível implantar um podcontêiner único que consiste em ubuntudirecionar um namespace ou até mesmo um nó.

Em vez de usar SSH para conectar-se a ele (o que é possível usando uma ampla combinação de uso LoadBalancerou exposição de a NodePort), é mais fácil usar a kubectlferramenta.

Se você estiver usando Cloud Shellele já instalado ou se estiver usando um laptop local, será necessário instalá-lo usando a gcloudferramenta.

Eu sugeriria conectar-se diretamente ao contêiner usando a seguinte sintaxe:

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

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

O primeiro comando assume que o nome do contêiner está ubuntue no namespace atual. O segundo comando fornece o formato geral.

Exemplo ubuntude definição de pod:

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

Você pode adicionar um namespaceou garantir que tenha o contexto correto antes de se inscrever. Algo como:

kubectl apply -f path/to/yaml/file

informação relacionada