Сегодня мы с вами разберем тему Kubernetes Services. Приступаем.

Виды K8s Services

Вид сервиса задается при его создании. Существуют следующие виды services:

  • ClusterIP – IP только внутри K8s Cluster (используется по умолчанию)
  • NodePort – Определенный порт на всех K8s Worker Nodes
  • ExternalName – DNS CNAME Record
  • LoadBalancer – Только в Cloud Clusters

Немного практики

Первое что надо создать в кластере это deployment (про деплоймент есть отдельная заметка):

kubectl create deployment DEPLOYMENT_NAME --image IMAGE_NAME

Затем делаем scale:

kubectl scale deployment DEPLOYMENT_NAME --replicas NUM_OF_REPLICAS

И вот теперь мы создадим сервис, чтобы иметь доступ к нашим подам:

kubectl expose deployment DEPLOYMENT_NAME --type=SERVICE_TYPE --port PORT_NUM

Для проверки вводим:

kubectl get services

Для удаления services используем команду:

kubectl delete service DEPLOYMENT_NAME

K8s Services также можно создавать с помощью YAML файла. Минимально необходимый формат вы можете посмотреть в моем GitHub`е.

Для создания сервиса через yaml файл используется вот такая команда:

kubectl apply -f FILE_NAME.yaml

Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)

От DevOps

DevOps or not...