Как уже говорилось, Kubernetes использует докер для внутреннего развертывания контейнеров . Для более подробного объяснения рассмотрим кластер, который имеет 4 узла, 1 ведущий и 3 ведомых.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
******.mylabserver.com Ready master 13d v1.10.5
******.mylabserver.com Ready <none> 13d v1.10.5
******.mylabserver.com Ready <none> 13d v1.10.5
******.mylabserver.com Ready <none> 13d v1.10.5
Я развертываю модуль с образом док-станции nignx .
$ cat pod-nginx.yml
apiVersion: v1
kind: Pod
metadata:
name: alpine
namespace: default
spec:
containers:
- name: alpine
image: alpine
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
Вы можете получить статус модуля, как показано ниже:
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
alpine 1/1 Running 0 21s 10.244.3.4 ******.mylabserver.com
Kube-планировщик будет планировать модуль на одном из доступных узлов.
Теперь модуль развернут на сервере, где вы можете войти на этот конкретный сервер и найти информацию, которую вы ищете.
root@******:/home/user# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
6486de4410ad alpine@sha256:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f "sleep 3600" 58 seconds ago Up 57 seconds
k8s_alpine_alpine_default_2e2b3016-79c8-11e8-aaab-
Запустите команду docker exec
на этом сервере, чтобы увидеть процесс, выполняющийся внутри.
root@******:/home/user# docker exec -it 6486de4410ad /bin/sh
/ # ps -eaf
PID USER TIME COMMAND
1 root 0:00 sleep 3600
7 root 0:00 /bin/sh
11 root 0:00 ps -eaf
/ #
https://kubernetes.io/docs/home/- это может дать вам больше информации о модулях и о том, как происходит развертывание с модулями / контейнерами.
Надеюсь, это поможет.