Логотип

Как удалить сервис в Kubernetes

Как читать узлы в Kubernetes

Из этого совета Kubernetes вы узнаете об удалении сервиса в Kubernetes.

 

Что такое сервис Kubernetes?

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

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

Это службы, которые обеспечивают связь между этими группами модулей. В кластере может быть столько сервисов, сколько требуется.

 

Почему мы пользуемся Сервисом?

Модули Kubernetes — ненадежные и непостоянные ресурсы, потому что они создаются и уничтожаются в соответствии с состоянием вашего кластера. Когда вы создаете развертывание Kubernetes для запуска своего приложения, оно может динамически создавать и уничтожать поды.

У каждого модуля есть свой IP-адрес, который может измениться позже, потому что этот модуль может быть уничтожен и может появиться новый.

Это приводит к проблеме: если какой-то набор модулей (назовите их «бэкэндами») предоставляет функциональность другим модулям (назовите их «внешними интерфейсами») внутри вашего кластера, как внешние интерфейсы узнают и отслеживают, к какому IP-адресу подключаться? , чтобы веб-интерфейс мог использовать внутреннюю часть рабочей нагрузки?

Читать  Как установить Kubernetes на единый узел Ubuntu

По этой причине архитекторы Kubernetes предложили решение, известное как Service.

 

Удаление сервиса Kubernetes

Сначала перечислите доступные сервисы в вашем кластере Kubernetes.

Эта команда выведет список всех сервисов, созданных во всех пространствах имен:

root@andreyex:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE     SELECTOR
default       kubernetes   ClusterIP   15.86.0.1        <none>        443/TCP                  24d     <none>
kube-system   kube-dns     ClusterIP   15.86.0.10       <none>        53/UDP,53/TCP,9153/TCP   64d     k8s-app=kube-dns
webapps       my-dep-svc   ClusterIP   15.100.159.167   <none>        8080/TCP                 2m45s   tier=front-end

 

Вы можете увидеть службу с именем, my-dep-svcсозданную в пространстве имен webapps.

Давайте опишем эту услугу, чтобы быстро понять ее функциональность.

root@andreyex:~/pod-create# kubectl describe svc my-dep-svc --namespace=webapps
Name:              my-dep-svc
Namespace:         webapps
Labels:            <none>
Annotations:       Selector:  tier=front-end
Type:              ClusterIP
IP:                15.100.159.167
Port:              <unset>  8080/TCP
TargetPort:        80/TCP
Endpoints:         172.16.213.223:80,172.16.213.5:80
Session Affinity:  None
Events:            <none>

 

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

Сервису my-dep-svc назначен виртуальный IP-адрес 15.100.159.167.

Для быстрой демонстрации давайте попробуем получить доступ к приложению, работающему на этих двух конечных точках (модулях), используя IP-адрес службы (15.100.159.167) и его порт (8080).

root@andreyex:~/pod-create# curl 15.100.159.167:8080
<html><body><h1>It works!</h1></body></html>
root@andreyex:~/pod-create#

 

Мы думаем, что вы уже получили общее представление о сервисах Kubernetes.

Теперь есть два способа удалить сервис в Kubernetes. Посмотрим на них одного за другим.

Читать  Terraform и Kubernetes – два мощных инструмента для управления облачной инфраструктурой

 

Метод 1. Используйте команду kubectl delete для удаления службы

Вы можете удалить службу в Kubernetes, указав имя ресурса непосредственно в команде kubectl:

root@andreyex:~/pod-create# kubectl delete svc --namespace=webapps my-dep-svc
service "my-dep-svc" deleted

 

Теперь, если вы перечислите все услуги:

root@andreyex:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default       kubernetes   ClusterIP   15.86.0.1    <none>        443/TCP                  24d   <none>
kube-system   kube-dns     ClusterIP   15.86.0.10   <none>        53/UDP,53/TCP,9153/TCP   64d   k8s-app=kube-dns

 

Метод 2: удалить, указав тот же файл YAML, с помощью которого он был создан

Файл конфигурации YAML, из которого была создана служба my-dep-svc.

root@andreyex:~/pod-create# cat my-dep-svc.yml
apiVersion: v1
kind: Service
metadata:
   name: my-dep-svc
   namespace: webapps
spec:
  selector:
    tier: front-end
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 80

 

Теперь удалите службу, обратившись к тому же файлу YAML, который использовался для ее создания.

root@andreyex:~/pod-create# kubectl delete -f my-dep-svc.yml
service "my-dep-svc" deleted

 

Снова перечислите все услуги.

root@andreyex:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default       kubernetes   ClusterIP   15.86.0.1    <none>        443/TCP                  24d   <none>
kube-system   kube-dns     ClusterIP   15.86.0.10   <none>        53/UDP,53/TCP,9153/TCP   64d   k8s-app=kube-dns

 

Вот и все. Вы научились удалять сервис в Kubernetes. Следите за новостями.

Редактор: AndreyEx

Рейтинг: 4.6 (23 голоса)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала