Uma service entry adiciona um serviço externo ao registro interno de serviços do service mesh. Ela descreve propriedades do serviço, como nome de domínio, portas, protocolos e endpoints, o que permite o acesso pelos serviços no mesh. Este tópico descreve como criar, modificar e excluir uma service entry.
Observações de uso
-
Para evitar conflitos de porta com o sidecar, não use as seguintes portas reservadas do Envoy ao criar uma service entry:
Porta
Protocolo
Uso
Descrição
15000
TCP
Envoy
Porta de administração do Envoy.
15001
TCP
Envoy
Porta para tráfego de saída do Envoy.
15006
TCP
Envoy
Porta para tráfego de entrada no Envoy.
15020
HTTP
Envoy
Porta para telemetria Prometheus mesclada do proxy Istio, Envoy e aplicação.
15021
HTTP
Envoy
Porta para verificações de integridade.
15090
HTTP
Envoy
Porta para telemetria Prometheus do Envoy.
-
Siga estas convenções ao nomear portas em uma service entry:
Protocolo
Nome da porta
Nome da porta com sufixo
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>
-
Observe os seguintes requisitos ao usar os protocolos HTTP, HTTPS, TLS e TCP:
-
Ao usar o protocolo HTTP, HTTPS ou TLS, especifique os hosts na service entry.
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_EXTERNAL -
Ao usar o protocolo TCP, especifique os intervalos de endereços IP na service entry.
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
-
-
Se vários serviços externos usarem a mesma porta TCP, especifique um endereço IP exclusivo para cada serviço.
-
Serviço externo 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: DNS -
Serviço externo 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
-
-
Por padrão, uma service entry torna um serviço externo acessível em todos os namespaces. Para restringir o acesso ao namespace onde a service entry foi criada, adicione o parâmetro exportTo e defina seu valor como ".".
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_EXTERNAL -
Recomendamos o uso de resolução DNS. Nesse modo, o proxy consulta o DNS para o host especificado e direciona o tráfego ao endereço IP resolvido, ignorando o IP de destino original.
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: Defina este parâmetro como DNS para usar a resolução DNS. Defina-o como NONE para ignorar a resolução DNS.
Criar uma service entry
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha . Na página exibida, clique em Create from YAML.
-
Na página Create, selecione um Namespaces e um Scenario Template, modifique a configuração no editor YAML conforme necessário e clique em Create.
Para obter mais informações sobre os campos, consulte e Service Entry.
Modificar uma service entry
Na página de detalhes do mesh, no painel de navegação à esquerda, escolha .
Na página External Service(ServiceEntry), localize a service entry que deseja modificar e clique em View YAML na coluna Actions.
Na caixa de diálogo Edit, altere a configuração da service entry e clique em OK.
Excluir uma service entry
Na página de detalhes do mesh, no painel de navegação à esquerda, escolha .
Na página External Service(ServiceEntry), localize a service entry que deseja excluir e clique em Delete na coluna Actions.
Na caixa de diálogo Confirm, clique em OK.