GNU/Linux >> Belajar Linux >  >> Linux

Cara Menghapus Layanan di Kubernetes

Dalam tip Kubernetes ini, Anda akan mempelajari cara menghapus layanan di Kubernetes.

Apa itu Layanan Kubernetes?

Layanan memungkinkan komunikasi antara berbagai komponen di dalam dan di luar aplikasi. Layanan Kubernetes membantu Anda menghubungkan aplikasi dengan aplikasi atau pengguna lain. Ini memberikan alamat IP virtual (VIP) yang stabil. Dengan menggunakan IP layanan, klien dapat dengan andal terhubung ke container yang berjalan di dalam pod.

Misalnya, aplikasi Anda memiliki grup pod yang berjalan untuk berbagai bagian seperti grup untuk melayani beban front end kepada pengguna dan grup lain untuk menjalankan proses back end dan grup ketiga yang menghubungkan ke sumber data eksternal.

Ini adalah layanan yang memungkinkan konektivitas antara kelompok-kelompok pod ini. Anda dapat memiliki layanan sebanyak yang diperlukan dalam cluster.

Mengapa kami menggunakan Layanan?

Pod Kubernetes adalah resource yang tidak dapat diandalkan dan tidak permanen karena dibuat dan dimusnahkan agar sesuai dengan status cluster Anda. Saat Anda membuat Kubernetes Deployment untuk menjalankan aplikasi Anda, itu dapat membuat dan menghancurkan Pod secara dinamis.

Setiap pod memiliki alamat IP sendiri dan itu mungkin berubah di lain waktu karena pod tersebut mungkin rusak dan yang baru mungkin muncul.

Hal ini menyebabkan masalah:jika beberapa set Pod (sebut saja "backend") menyediakan fungsionalitas ke Pod lain (sebut saja "frontend") di dalam cluster Anda, bagaimana frontend mengetahui dan melacak alamat IP mana yang akan dihubungkan , sehingga frontend dapat menggunakan bagian backend dari beban kerja?

Itulah alasan arsitek Kubernetes menemukan solusi yang dikenal sebagai Layanan.

Menghapus layanan Kubernetes

Daftar pertama layanan yang tersedia di cluster kubernetes Anda.

Perintah ini akan mencantumkan semua layanan yang dibuat dalam semua ruang nama:

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

Anda dapat melihat layanan bernama my-dep-svc dibuat dalam webapps ruang nama.

Mari kita jelaskan layanan tersebut untuk memahami fungsinya dengan cepat.

[email protected]:~/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:                10.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>

Seperti yang saya sebutkan sebelumnya, layanan adalah pengelompokan pod. Anda dapat mengetahui bahwa layanan ini memiliki dua titik akhir yang terkait dengan ini. Lebih lanjut tentang asosiasi titik akhir mungkin di artikel mendatang.

Layanan my-dep-svc memiliki IP virtual yang ditetapkan untuknya 10.100.159.167 .

Untuk demo cepat, mari kita coba mengakses aplikasi yang berjalan di kedua endpoint (pod) tersebut dengan menggunakan Service IP (10.100.159.167) dan port-nya (8080).

[email protected]:~/pod-create# curl 10.100.159.167:8080
<html><body><h1>It works!</h1></body></html>
[email protected]:~/pod-create#

Saya rasa Anda mungkin sudah mendapatkan ide dasar tentang layanan Kubernetes.

Sekarang, ada dua cara untuk menghapus layanan di Kubernetes. Mari kita lihat satu per satu.

Metode 1:Gunakan perintah kubectl delete untuk menghapus layanan

Anda dapat menghapus layanan di Kubernetes dengan memberikan nama sumber daya langsung ke perintah kubectl:

[email protected]:~/pod-create# kubectl delete svc --namespace=webapps my-dep-svc
service "my-dep-svc" deleted

Sekarang, jika Anda mencantumkan semua layanan:

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

Metode 2:Hapus dengan merujuk file YAML yang sama dengan yang dibuat

File konfigurasi YAML dari mana layanan my-dep-svc telah dibuat.

[email protected]:~/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

Sekarang hapus layanan dengan merujuk file YAML yang sama yang digunakan untuk membuatnya.

[email protected]:~/pod-create# kubectl delete -f my-dep-svc.yml
service "my-dep-svc" deleted

Sekali lagi daftar semua layanan.

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

Itu dia. Anda belajar menghapus layanan di Kubernetes. Nantikan yang lainnya.


Linux
  1. Cara menggunakan Podman di dalam Kubernetes

  2. Cara menghapus tugas cron

  3. Bagaimana menghentikan layanan systemd

  1. Cara membuat layanan Systemd di Linux

  2. Cara Menghapus Pod di Kubernetes [Tips Cepat K8s]

  3. Cara Menghapus Deployment Kubernetes [Tips Cepat K8s]

  1. Cara Menginstal Jenkins di Kubernetes

  2. Cara Memulai Ulang Pod Kubernetes

  3. Cara Menjalankan MongoDB di Kubernetes