Шпаргалка по Kubernetes Service

Thank you for reading this post, don't forget to subscribe!

Сервисы(службы) Kubernetes исполь­зу­ют­ся для рабо­ты ваших моду­лей за пре­де­ла­ми кластера.

Пом­нить, как напи­сать струк­ту­ру мани­фе­ста служ­бы, может быть слож­но, и поми­мо струк­ту­ры, про­сто вспом­нить, какой apiVersion нуж­но исполь­зо­вать в дан­ном слу­чае может быть еще сложнее.

В этом руко­вод­стве вы узна­е­те, как струк­ту­ри­ро­вать мани­фест служ­бы, а так­же как дина­ми­че­ски гене­ри­ро­вать его на лету с помо­щью коман­ды kubectl create.

Манифест сервиса

Типич­ный мани­фест кон­фи­гу­ра­ции Kubernetes запи­сы­ва­ет­ся и сохра­ня­ет­ся в виде фай­ла YAML.

Струк­ту­ра тако­го мани­фе­ста будет выгля­деть ана­ло­гич­но сле­ду­ю­ще­му примеру:

[codesyntax lang="php"]

[/codesyntax]

Настройка службы LoadBalancer

Что­бы создать служ­бу типа балан­си­ров­щи­ка нагруз­ки с помо­щью kubectl, исполь­зуй­те сле­ду­ю­щую команду.

Флаг —dry-run оста­нав­ли­ва­ет отправ­ку запро­са kubectl на api-кон­трол­лер Kubernetes, а флаг -o yaml ука­зы­ва­ет kubectl выво­дить резуль­та­ты в YAML.

В при­ве­ден­ном выше при­ме­ре будет созда­на кон­фи­гу­ра­ция для служ­бы со сле­ду­ю­щи­ми атрибутами:
  • Тип LoadBalancer
  • Имя hello-world-service
  • Порт 80
  • Внут­рен­ний порт 3000
Вывод коман­ды будет выгля­деть при­мер­но так:

[codesyntax lang="php"]

[/codesyntax]

Перед исполь­зо­ва­ни­ем фай­ла кон­фи­гу­ра­ции потре­бу­ет­ся неболь­шая доработка.
Суще­ству­ет ряд полей, кото­рые не сле­ду­ет хра­нить в каче­стве кон­фи­гу­ра­ций для ваше­го кла­сте­ра Kubernetes.

[codesyntax lang="php"]

[/codesyntax]

Создание службы NodePort

Созда­ние служ­бы NodePort ана­ло­гич­но сер­ве­ру LoadBalancer, с той лишь раз­ни­цей, что в коман­де вме­сто loadbalancer исполь­зу­ет­ся nodeport.

Создание конфигурации службы ClusterIP

Как и в слу­чае с типом балан­си­ров­ки нагруз­ки и типом пор­та узла, тип ClusterIP созда­ет­ся с помо­щью сле­ду­ю­щей команды.