Kubernetes - Layanan

Sebuah layanan dapat didefinisikan sebagai kumpulan pod yang logis. Ini dapat didefinisikan sebagai abstraksi di bagian atas pod yang menyediakan satu alamat IP dan nama DNS yang dapat digunakan untuk mengakses pod. Dengan Layanan, sangat mudah untuk mengelola konfigurasi load balancing. Ini membantu pod untuk menskalakan dengan sangat mudah.

Layanan adalah objek REST di Kubernetes yang definisinya dapat diposting ke Kubernetes apiServer di master Kubernetes untuk membuat instance baru.

Layanan tanpa Pemilih

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   ports:
   - port: 8080
   targetPort: 31999

Konfigurasi di atas akan membuat layanan dengan nama Tutorial_point_service.

File Konfigurasi Layanan dengan Selector

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   selector:
      application: "My Application" -------------------> (Selector)
   ports:
   - port: 8080
   targetPort: 31999

Dalam contoh ini, kami memiliki pemilih; jadi untuk mentransfer lalu lintas, kita perlu membuat titik akhir secara manual.

apiVersion: v1
kind: Endpoints
metadata:
   name: Tutorial_point_service
subnets:
   address:
      "ip": "192.168.168.40" -------------------> (Selector)
   ports:
      - port: 8080

Pada kode di atas, kita telah membuat titik akhir yang akan mengarahkan lalu lintas ke titik akhir yang didefinisikan sebagai "192.168.168.40:8080".

Pembuatan Layanan Multi-Port

apiVersion: v1
kind: Service
metadata:
   name: Tutorial_point_service
spec:
   selector:
      application: “My Application” -------------------> (Selector)
   ClusterIP: 10.3.0.12
   ports:
      -name: http
      protocol: TCP
      port: 80
      targetPort: 31999
   -name:https
      Protocol: TCP
      Port: 443
      targetPort: 31998

Jenis Layanan

ClusterIP- Ini membantu dalam membatasi layanan di dalam cluster. Ini mengekspos layanan dalam cluster Kubernetes yang ditentukan.

spec:
   type: NodePort
   ports:
   - port: 8080
      nodePort: 31999
      name: NodeportService

NodePort- Ini akan mengekspos layanan pada port statis pada node yang diterapkan. SEBUAHClusterIP layanan, ke mana NodePortlayanan akan merutekan, secara otomatis dibuat. Layanan dapat diakses dari luar cluster menggunakanNodeIP:nodePort.

spec:
   ports:
   - port: 8080
      nodePort: 31999
      name: NodeportService
      clusterIP: 10.20.30.40

Load Balancer - Menggunakan penyeimbang beban penyedia cloud. NodePort dan ClusterIP layanan dibuat secara otomatis ke mana penyeimbang beban eksternal akan merutekan.

Sebuah layanan penuh yamlfile dengan jenis layanan sebagai Node Port. Coba buat sendiri.

apiVersion: v1
kind: Service
metadata:
   name: appname
   labels:
      k8s-app: appname
spec:
   type: NodePort
   ports:
   - port: 8080
      nodePort: 31999
      name: omninginx
   selector:
      k8s-app: appname
      component: nginx
      env: env_name