Как создать один под Ubuntu в кластере Kubernetes или OpenShift ?
В Kubernetes под – это группа из одного или нескольких контейнеров с общим хранилищем/сетевыми ресурсами и спецификацией того, как запускать контейнеры.
☸️ Kubernetes — введение для начинающих
Когда под запускает один контейнер, вы можете подумать о нем как об оболочке вокруг одного контейнера.
Kubernetes управляет подами, а не контейнерами напрямую.
В этом руководстве мы рассмотрим, как развернуть Ubuntu в кластере Kubernetes или OpenShift.
Это может быть нужно в целях отладки или просто для тестирования сетевого подключения к другим подам и службам в пространстве имен.
Поскольку поды спроектированы как относительно эфемерные и одноразовые объекты, вам никогда не следует запускать рабочие нагрузки производственных контейнеров, создавая поды напрямую.
Вместо этого создайте их, используя ресурсы рабочей нагрузки, такие как развертывание (Deployment).
☸️ Шпаргалка по Kubernetes Deployment
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
labels:
app: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:latest
command: ["/bin/sleep", "3650d"]
imagePullPolicy: IfNotPresent
restartPolicy: Always
Вы можете выполнить следующие команды kubectl, чтобы развернуть под
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: ubuntu
labels:
app: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:latest
command: ["/bin/sleep", "3650d"]
imagePullPolicy: IfNotPresent
restartPolicy: Always
EOF
Ожидаемый результат:
pod/ubuntu created
Проверьте статус пода:
$ kubectl get pod ubuntu
NAME READY STATUS RESTARTS AGE
ubuntu 1/1 Running 0 34s
Доступ к оболочке пода Kubernetes
Убедившись, что под запущен, вы можете получить доступ к его сеансу оболочки с помощью команды kubectl или oc.
Используя команду kubectl:
kubectl exec --stdin --tty ubuntu -- /bin/bash
Чтобы выйти из оболочки, используйте команду exit:
root@ubuntu:/# exit
exit
Используя команду oc:
$ oc rsh --shell=/bin/bash ubuntu
root@ubuntu:/# exit
exit
Установка пакетов в поде Ubuntu
Вы можете использовать стандартный инструмент управления пакетами ubuntu apt для установки и удаления пакетов программного обеспечения.
Пример, показанный ниже устанавливает telnet в контейнер Ubuntu.
$ kubectl exec --stdin --tty ubuntu -- /bin/bash
root@ubuntu:/# apt update
root@ubuntu:/# apt install telnet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
netbase
The following NEW packages will be installed:
netbase telnet
0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Need to get 77.2 kB of archives.
After this operation, 207 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
root@ubuntu:/# telnet 10.10.6.5 8080
Trying 10.10.6.5...
Connected to 10.10.6.5.
Escape character is '^]'.
E��^]
telnet> quit
Connection closed.