
У меня есть кластер 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