Сегодня мы с вами разберем тему 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 или в комментариях ниже.