SSH-подключение к кластеру GKE Kubernetes?

SSH-подключение к кластеру GKE Kubernetes?

У меня есть кластер 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в текущем пространстве имен. Вторая команда задает общий формат.

Пример 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

Связанный контент