Kubernetes — это платформа с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Он становится все более популярным для управления контейнерными приложениями в облачных средах. Вот памятка по основам Kubernetes, которая поможет вам начать работу с этой мощной платформой.
- Узлы
Узлы — это физические или виртуальные машины, на которых выполняются ваши приложения. На каждом узле работает среда выполнения контейнера (например, Docker) и kubelet — агент, взаимодействующий с плоскостью управления Kubernetes. Узлы управляются плоскостью управления, которая планирует и развертывает контейнеры на узлах.
Чтобы перечислить узлы в вашем кластере:
csharp kubectl get nodes
- стручки
Поды — это самые маленькие развертываемые единицы в Kubernetes. Они содержат один или несколько контейнеров, которые используют одно и то же сетевое пространство имен и могут взаимодействовать друг с другом с помощью localhost. Поды используются для группировки контейнеров, которые необходимо развернуть вместе, и совместного использования ресурсов, таких как тома хранилища.
Чтобы создать под:
lua kubectl create -f pod.yaml
- Развертывания
Развертывания используются для управления жизненным циклом набора модулей. Они гарантируют, что желаемое количество реплик работает и может выполнять последовательные обновления и откаты. Развертываниями управляет плоскость управления, и их можно обновлять с помощью декларативной конфигурации.
Чтобы создать развертывание:
lua kubectl create deployment my-deployment --image=my-image
- Услуги
Службы предоставляют сетевой доступ к набору модулей. Они позволяют балансировать нагрузку и обнаруживать модули с помощью меток. Службы имеют стабильный IP-адрес и DNS-имя, которые можно использовать для доступа к модулям из кластера.
Чтобы создать услугу:
css kubectl expose deployment my-deployment --port=80 --target-port=8080
- Карты конфигурации
ConfigMaps используются для хранения данных конфигурации, к которым могут обращаться контейнеры. Они могут хранить пары ключ-значение или файлы и часто используются для хранения переменных среды или файлов конфигурации.
Чтобы создать ConfigMap:
lua kubectl create configmap my-config --from-literal=key=value
- Секреты
Секреты используются для хранения конфиденциальных данных, таких как пароли или ключи API. Они похожи на ConfigMaps, но данные хранятся в зашифрованном формате. Секреты монтируются как тома или переменные среды в контейнерах.
Чтобы создать секрет:
lua kubectl create secret generic my-secret --from-literal=password=mys3cr3t
- Объемы
Тома предоставляют способ хранения данных, которые должны сохраняться при перезапуске контейнера или совместно использоваться между контейнерами. Kubernetes поддерживает различные типы томов, включая hostPath, emptyDir, configMap и secret.
Чтобы создать том:
lua kubectl create -f volume.yaml
- Пространства имен
Пространства имен используются для организации объектов в кластере Kubernetes. Они позволяют разделить ресурсы кластера между разными командами или приложениями. По умолчанию объекты Kubernetes создаются в пространстве имен по умолчанию.
Чтобы создать пространство имен:
cpp kubectl create namespace my-namespace
- Ярлыки и селекторы
Метки — это пары ключ-значение, которые прикрепляются к объектам в Kubernetes. Их можно использовать для группировки объектов и выполнения над ними операций. Селекторы используются для идентификации объектов на основе их меток.
Чтобы добавить метку к объекту:
perl kubectl label pod my-pod app=my-app
Чтобы выбрать объекты на основе меток:
csharp kubectl get pods -l app=my-app