Entri layanan menambahkan layanan eksternal ke registrasi layanan internal service mesh. Entri ini menjelaskan properti layanan, seperti nama domain, port, protokol, dan titik akhir (endpoint), sehingga layanan dalam mesh dapat mengaksesnya. Topik ini menjelaskan cara membuat, memodifikasi, dan menghapus entri layanan.
Catatan penggunaan
Untuk mencegah konflik port dengan sidecar, jangan gunakan port yang dicadangkan Envoy berikut saat membuat entri layanan:
Port
Protocol
Used by
Description
15000
TCP
Envoy
Envoy admin port.
15001
TCP
Envoy
Port untuk lalu lintas keluar (outbound traffic) dari Envoy.
15006
TCP
Envoy
Port untuk lalu lintas masuk (inbound traffic) ke Envoy.
15020
HTTP
Envoy
Port untuk telemetri Prometheus gabungan dari proxy Istio, Envoy, dan aplikasi.
15021
HTTP
Envoy
Port untuk pemeriksaan kesehatan (health checks).
15090
HTTP
Envoy
Port untuk telemetri Prometheus Envoy.
Saat memberi nama port dalam entri layanan, ikuti konvensi berikut:
Protocol
Port name
Port name with a suffix
HTTP
http
http-<suffix>
HTTP2
http2
http2-<suffix>
HTTPS
https
https-<suffix>
TLS
tls
tls-<suffix>
gRPC
grpc
grpc-<suffix>
TCP
tcp
tcp-<suffix>
UDP
UDP
udp-<suffix>
Mongo
mongo
mongo-<suffix>
MySQL
mysql
mysql-<suffix>
Redis
redis
redis-<suffix>
Perhatikan persyaratan berikut saat menggunakan protokol HTTP, HTTPS, TLS, dan TCP:
Saat menggunakan protokol HTTP, HTTPS, atau TLS, Anda harus menentukan host dalam entri layanan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com - aliyun.com ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNALSaat menggunakan protokol TCP, Anda harus menentukan rentang alamat IP dalam entri layanan.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: mysql-external spec: hosts: - mysql-01.foo.bar addresses: - 10.0.0.5/32 - 10.0.0.6/32 ports: - name: tcp number: 3306 protocol: tcp location: MESH_EXTERNAL
Jika beberapa layanan eksternal menggunakan port TCP yang sama, tentukan alamat IP unik untuk setiap layanan.
Layanan eksternal 1
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-1 namespace: default spec: hosts: - fqdna.fqdn.com addresses: - 10.0.0.0 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNSLayanan eksternal 2
apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-svc-2 namespace: default spec: hosts: - fqdnb.fqdn.com addresses: - 10.1.0.0 location: MESH_EXTERNAL ports: - name: TCP number: 3306 protocol: TCP resolution: DNS
Secara default, entri layanan membuat layanan eksternal dapat diakses dari semua namespace. Untuk membatasi akses hanya ke namespace tempat entri layanan dibuat, tambahkan parameter exportTo dan atur nilainya menjadi ".".
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - www.aliyun.com exportTo: - "." ports: - number: 443 name: https protocol: HTTPS resolution: DNS location: MESH_EXTERNALKami merekomendasikan penggunaan resolusi DNS. Dengan resolusi DNS, proxy melakukan kueri DNS untuk host yang ditentukan dan mengarahkan lalu lintas ke alamat IP hasil resolusi, mengabaikan alamat IP tujuan asli.
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: aliyun spec: hosts: - '*.aliyun.com' addresses: - 192.168.0.0 - 172.16.0.0 location: MESH_EXTERNAL ports: - number: 443 protocol: https name: https resolution: DNSresolution: Atur parameter ini ke DNS untuk menggunakan resolusi DNS atau ke NONE untuk melewati resolusi DNS.
Buat entri layanan
-
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih . Pada halaman yang muncul, klik Create from YAML.
Pada halaman Create, pilih Namespaces dan Scenario Template, modifikasi konfigurasi di editor YAML sesuai kebutuhan, lalu klik Create.
Untuk informasi lebih lanjut tentang bidang-bidang tersebut, lihat dan Service Entry.
Modifikasi entri layanan
Pada halaman detail mesh, di panel navigasi sebelah kiri, pilih .
Pada halaman External Service(ServiceEntry), temukan entri layanan yang ingin dimodifikasi dan klik View YAML di kolom Actions.
Pada kotak dialog Edit, modifikasi konfigurasi entri layanan dan klik OK.
Hapus entri layanan
Pada halaman detail mesh, di panel navigasi sebelah kiri, pilih .
Pada halaman External Service(ServiceEntry), temukan entri layanan yang ingin dihapus dan klik Delete di kolom Actions.
Pada kotak dialog Confirm, klik OK.