Kubernetes — это платформа с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Он становится все более популярным для управления контейнерными приложениями в облачных средах. Вот памятка по основам Kubernetes, которая поможет вам начать работу с этой мощной платформой.

  1. Узлы

Узлы — это физические или виртуальные машины, на которых выполняются ваши приложения. На каждом узле работает среда выполнения контейнера (например, Docker) и kubelet — агент, взаимодействующий с плоскостью управления Kubernetes. Узлы управляются плоскостью управления, которая планирует и развертывает контейнеры на узлах.

Чтобы перечислить узлы в вашем кластере:

csharp
kubectl get nodes
  1. стручки

Поды — это самые маленькие развертываемые единицы в Kubernetes. Они содержат один или несколько контейнеров, которые используют одно и то же сетевое пространство имен и могут взаимодействовать друг с другом с помощью localhost. Поды используются для группировки контейнеров, которые необходимо развернуть вместе, и совместного использования ресурсов, таких как тома хранилища.

Чтобы создать под:

lua
kubectl create -f pod.yaml
  1. Развертывания

Развертывания используются для управления жизненным циклом набора модулей. Они гарантируют, что желаемое количество реплик работает и может выполнять последовательные обновления и откаты. Развертываниями управляет плоскость управления, и их можно обновлять с помощью декларативной конфигурации.

Чтобы создать развертывание:

lua
kubectl create deployment my-deployment --image=my-image
  1. Услуги

Службы предоставляют сетевой доступ к набору модулей. Они позволяют балансировать нагрузку и обнаруживать модули с помощью меток. Службы имеют стабильный IP-адрес и DNS-имя, которые можно использовать для доступа к модулям из кластера.

Чтобы создать услугу:

css
kubectl expose deployment my-deployment --port=80 --target-port=8080
  1. Карты конфигурации

ConfigMaps используются для хранения данных конфигурации, к которым могут обращаться контейнеры. Они могут хранить пары ключ-значение или файлы и часто используются для хранения переменных среды или файлов конфигурации.

Чтобы создать ConfigMap:

lua
kubectl create configmap my-config --from-literal=key=value
  1. Секреты

Секреты используются для хранения конфиденциальных данных, таких как пароли или ключи API. Они похожи на ConfigMaps, но данные хранятся в зашифрованном формате. Секреты монтируются как тома или переменные среды в контейнерах.

Чтобы создать секрет:

lua
kubectl create secret generic my-secret --from-literal=password=mys3cr3t
  1. Объемы

Тома предоставляют способ хранения данных, которые должны сохраняться при перезапуске контейнера или совместно использоваться между контейнерами. Kubernetes поддерживает различные типы томов, включая hostPath, emptyDir, configMap и secret.

Чтобы создать том:

lua
kubectl create -f volume.yaml
  1. Пространства имен

Пространства имен используются для организации объектов в кластере Kubernetes. Они позволяют разделить ресурсы кластера между разными командами или приложениями. По умолчанию объекты Kubernetes создаются в пространстве имен по умолчанию.

Чтобы создать пространство имен:

cpp
kubectl create namespace my-namespace
  1. Ярлыки и селекторы

Метки — это пары ключ-значение, которые прикрепляются к объектам в Kubernetes. Их можно использовать для группировки объектов и выполнения над ними операций. Селекторы используются для идентификации объектов на основе их меток.

Чтобы добавить метку к объекту:

perl
kubectl label pod my-pod app=my-app

Чтобы выбрать объекты на основе меток:

csharp
kubectl get pods -l app=my-app