一、认识Ingress
  在Istio的流量控制中,Ingress可以理解为前端应用的一个代理网格,当被转发到代理容器的流量到达服务前,会先经过该服务的Ingress Gateway,之后;再有Ingress Gateway转发至后端的VirtualService资源对象上。
  

二、Ingress实验

1)部署httpbin服务

➜  cat ../../samples/httpbin/httpbin.yaml
# Copyright Istio Authors
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.##################################################################################################
# httpbin service
##################################################################################################
apiVersion: v1
kind: ServiceAccount
metadata:name: httpbin
---
apiVersion: v1
kind: Service
metadata:name: httpbinlabels:app: httpbinservice: httpbin
spec:ports:- name: httpport: 8000targetPort: 80selector:app: httpbin
---
apiVersion: apps/v1
kind: Deployment
metadata:name: httpbin
spec:replicas: 1selector:matchLabels:app: httpbinversion: v1template:metadata:labels:app: httpbinversion: v1spec:serviceAccountName: httpbincontainers:- image: docker.io/kennethreitz/httpbinimagePullPolicy: IfNotPresentname: httpbinports:- containerPort: 80➜  kubectl apply -f ../../samples/httpbin/httpbin.yaml
serviceaccount/httpbin created
service/httpbin created
deployment.apps/httpbin created

2)查看httpbin服务状态

➜  kubectl get pods -o wide | grep httpbin
httpbin-74fb669cc6-vn897          2/2     Running   0          4m15s   10.1.8.133   docker-desktop   <none>           <none>➜  kubectl get rs -o wide | grep httpbin
httpbin-74fb669cc6          1         1         1       7m5s   httpbin       docker.io/kennethreitz/httpbin                            app=httpbin,pod-template-hash=74fb669cc6,version=v1➜  kubectl get deploy -o wide | grep httpbin
httpbin          1/1     1            1           6m52s   httpbin       docker.io/kennethreitz/httpbin                            app=httpbin,version=v1➜  kubectl get svc  httpbin
NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
httpbin   ClusterIP   10.110.191.190   <none>        8000/TCP   12m➜  kubectl describe svc httpbin
Name:              httpbin
Namespace:         default
Labels:            app=httpbinservice=httpbin
Annotations:       <none>
Selector:          app=httpbin
Type:              ClusterIP
IP:                10.110.191.190
Port:              http  8000/TCP
TargetPort:        80/TCP
Endpoints:         10.1.8.133:80
Session Affinity:  None
Events:            <none>➜  kubectl describe pods httpbin-74fb669cc6-vn897
Name:         httpbin-74fb669cc6-vn897
Namespace:    default
Priority:     0
Node:         docker-desktop/192.168.65.4
Start Time:   Sat, 03 Jul 2021 17:23:17 +0800
Labels:       app=httpbinistio.io/rev=defaultpod-template-hash=74fb669cc6security.istio.io/tlsMode=istioservice.istio.io/canonical-name=httpbinservice.istio.io/canonical-revision=v1version=v1
Annotations:  kubectl.kubernetes.io/default-container: httpbinkubectl.kubernetes.io/default-logs-container: httpbinprometheus.io/path: /stats/prometheusprometheus.io/port: 15020prometheus.io/scrape: truesidecar.istio.io/status:{"initContainers":["istio-init"],"containers":["istio-proxy"],"volumes":["istio-envoy","istio-data","istio-podinfo","istiod-ca-cert"],"ima...
Status:       Running
IP:           10.1.8.133
IPs:IP:           10.1.8.133
Controlled By:  ReplicaSet/httpbin-74fb669cc6
Init Containers:istio-init:Container ID:  docker://c2540ee240389633be39ef2c442f4b3a3bda1316a529d247a594c28bd1cefa32Image:         docker.io/istio/proxyv2:1.10.1Image ID:      docker-pullable://istio/proxyv2@sha256:d9b295da022ad826c54d5bb49f1f2b661826efd8c2672b2f61ddc2aedac78cfcPort:          <none>Host Port:     <none>Args:istio-iptables-p15001-z15006-u1337-mREDIRECT-i*-x-b*-d15090,15021,15020State:          TerminatedReason:       CompletedExit Code:    0Started:      Sat, 03 Jul 2021 17:23:21 +0800Finished:     Sat, 03 Jul 2021 17:23:21 +0800Ready:          TrueRestart Count:  0Limits:cpu:     2memory:  1GiRequests:cpu:        10mmemory:     40MiEnvironment:  <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from httpbin-token-qk94s (ro)
Containers:httpbin:Container ID:   docker://3e4dfc72174241724b7c50c27d8d16947b43d126e435b916e39c5a925d79c1f8Image:          docker.io/kennethreitz/httpbinImage ID:       docker-pullable://kennethreitz/httpbin@sha256:599fe5e5073102dbb0ee3dbb65f049dab44fa9fc251f6835c9990f8fb196a72bPort:           80/TCPHost Port:      0/TCPState:          RunningStarted:      Sat, 03 Jul 2021 17:26:41 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from httpbin-token-qk94s (ro)istio-proxy:Container ID:  docker://4c0a5a3b8bc0c7ed9f9fb5fac7690f5302652b76e5adf21dd58e4b6c6a8a5c8bImage:         docker.io/istio/proxyv2:1.10.1Image ID:      docker-pullable://istio/proxyv2@sha256:d9b295da022ad826c54d5bb49f1f2b661826efd8c2672b2f61ddc2aedac78cfcPort:          15090/TCPHost Port:     0/TCPArgs:proxysidecar--domain$(POD_NAMESPACE).svc.cluster.local--serviceClusterhttpbin.$(POD_NAMESPACE)--proxyLogLevel=warning--proxyComponentLogLevel=misc:error--log_output_level=default:info--concurrency2State:          RunningStarted:      Sat, 03 Jul 2021 17:26:41 +0800Ready:          TrueRestart Count:  0Limits:cpu:     2memory:  1GiRequests:cpu:      10mmemory:   40MiReadiness:  http-get http://:15021/healthz/ready delay=1s timeout=3s period=2s #success=1 #failure=30Environment:JWT_POLICY:                    first-party-jwtPILOT_CERT_PROVIDER:           istiodCA_ADDR:                       istiod.istio-system.svc:15012POD_NAME:                      httpbin-74fb669cc6-vn897 (v1:metadata.name)POD_NAMESPACE:                 default (v1:metadata.namespace)INSTANCE_IP:                    (v1:status.podIP)SERVICE_ACCOUNT:                (v1:spec.serviceAccountName)HOST_IP:                        (v1:status.hostIP)CANONICAL_SERVICE:              (v1:metadata.labels['service.istio.io/canonical-name'])CANONICAL_REVISION:             (v1:metadata.labels['service.istio.io/canonical-revision'])PROXY_CONFIG:                  {}ISTIO_META_POD_PORTS:          [{"containerPort":80,"protocol":"TCP"}]ISTIO_META_APP_CONTAINERS:     httpbinISTIO_META_CLUSTER_ID:         KubernetesISTIO_META_INTERCEPTION_MODE:  REDIRECTISTIO_META_WORKLOAD_NAME:      httpbinISTIO_META_OWNER:              kubernetes://apis/apps/v1/namespaces/default/deployments/httpbinISTIO_META_MESH_ID:            cluster.localTRUST_DOMAIN:                  cluster.localMounts:/etc/istio/pod from istio-podinfo (rw)/etc/istio/proxy from istio-envoy (rw)/var/lib/istio/data from istio-data (rw)/var/run/secrets/istio from istiod-ca-cert (rw)/var/run/secrets/kubernetes.io/serviceaccount from httpbin-token-qk94s (ro)
Conditions:Type              StatusInitialized       True Ready             True ContainersReady   True PodScheduled      True
Volumes:istio-envoy:Type:       EmptyDir (a temporary directory that shares a pod's lifetime)Medium:     MemorySizeLimit:  <unset>istio-data:Type:       EmptyDir (a temporary directory that shares a pod's lifetime)Medium:     SizeLimit:  <unset>istio-podinfo:Type:  DownwardAPI (a volume populated by information about the pod)Items:metadata.labels -> labelsmetadata.annotations -> annotationslimits.cpu -> cpu-limitrequests.cpu -> cpu-requestistiod-ca-cert:Type:      ConfigMap (a volume populated by a ConfigMap)Name:      istio-ca-root-certOptional:  falsehttpbin-token-qk94s:Type:        Secret (a volume populated by a Secret)SecretName:  httpbin-token-qk94sOptional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300snode.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:Type    Reason     Age    From               Message----    ------     ----   ----               -------Normal  Scheduled  4m32s  default-scheduler  Successfully assigned default/httpbin-74fb669cc6-vn897 to docker-desktopNormal  Pulled     4m28s  kubelet            Container image "docker.io/istio/proxyv2:1.10.1" already present on machineNormal  Created    4m28s  kubelet            Created container istio-initNormal  Started    4m28s  kubelet            Started container istio-initNormal  Pulling    4m28s  kubelet            Pulling image "docker.io/kennethreitz/httpbin"Normal  Pulled     69s    kubelet            Successfully pulled image "docker.io/kennethreitz/httpbin" in 3m18.6849062sNormal  Created    69s    kubelet            Created container httpbinNormal  Started    68s    kubelet            Started container httpbinNormal  Pulled     68s    kubelet            Container image "docker.io/istio/proxyv2:1.10.1" already present on machineNormal  Created    68s    kubelet            Created container istio-proxyNormal  Started    68s    kubelet            Started container istio-proxy

3)创建Ingress Gateway

➜  cat ingress.yaml
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: httpbin-gateway
spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- "httpbin.example.com"➜  kubectl apply -f ingress.yaml
gateway.networking.istio.io/httpbin-gateway created➜  kubectl get gw httpbin-gateway  -o wide
NAME              AGE
httpbin-gateway   32s➜  kubectl describe  gw httpbin-gateway
Name:         httpbin-gateway
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         Gateway
Metadata:Creation Timestamp:  2021-07-03T09:32:32ZGeneration:          1Managed Fields:API Version:  networking.istio.io/v1alpha3Fields Type:  FieldsV1fieldsV1:f:metadata:f:annotations:.:f:kubectl.kubernetes.io/last-applied-configuration:f:spec:.:f:selector:.:f:istio:f:servers:Manager:         kubectl-client-side-applyOperation:       UpdateTime:            2021-07-03T09:32:32ZResource Version:  632602Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/gateways/httpbin-gatewayUID:               d1a475fb-a50a-485d-817c-4dedbb3426a9
Spec:Selector:Istio:  ingressgatewayServers:Hosts:httpbin.example.comPort:Name:      httpNumber:    80Protocol:  HTTP
Events:          <none>

4)创建对应的Virtual Service

➜  cat virtualservice.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: httpbin
spec:hosts:- "httpbin.example.com"gateways:- httpbin-gatewayhttp:- match:- uri:prefix: /status- uri:prefix: /delayroute:- destination:port:number: 8000host: httpbin➜  kubectl apply -f virtualservice.yaml
virtualservice.networking.istio.io/httpbin created

5)查看Virtual Service状态

➜  kubectl get vs -o wide | grep httpbin
httpbin    ["httpbin-gateway"]    ["httpbin.example.com"]   56s➜  kubectl describe vs httpbin
Name:         httpbin
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         VirtualService
Metadata:Creation Timestamp:  2021-07-03T09:39:26ZGeneration:          1Managed Fields:API Version:  networking.istio.io/v1alpha3Fields Type:  FieldsV1fieldsV1:f:metadata:f:annotations:.:f:kubectl.kubernetes.io/last-applied-configuration:f:spec:.:f:gateways:f:hosts:f:http:Manager:         kubectl-client-side-applyOperation:       UpdateTime:            2021-07-03T09:39:26ZResource Version:  633475Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/virtualservices/httpbinUID:               4bf50ddd-6d1c-4e3b-948e-56d04b5f2332
Spec:Gateways:httpbin-gatewayHosts:httpbin.example.comHttp:Match:Uri:Prefix:  /statusUri:Prefix:  /delayRoute:Destination:Host:  httpbinPort:Number:  8000
Events:            <none>

6)访问测试
httpbin服务有两个测试的url,分别是status与delay,status用于返回客户端传入的状态码,delay用于客户端自定义延迟多久返回响应报文。

➜  curl -I -HHost:httpbin.example.com http://localhost/status/200
HTTP/1.1 200 OK
server: istio-envoy
date: Sat, 03 Jul 2021 09:56:10 GMT
content-type: text/html; charset=utf-8
access-control-allow-origin: *
access-control-allow-credentials: true
content-length: 0
x-envoy-upstream-service-time: 29➜  curl -I -HHost:httpbin.example.com http://localhost/status/301
HTTP/1.1 301 Moved Permanently
server: istio-envoy
date: Sat, 03 Jul 2021 09:57:08 GMT
location: /redirect/1
access-control-allow-origin: *
access-control-allow-credentials: true
content-length: 0
x-envoy-upstream-service-time: 44➜  curl -I -HHost:httpbin.example.com http://localhost/status/502
HTTP/1.1 502 Bad Gateway
server: istio-envoy
date: Sat, 03 Jul 2021 09:56:38 GMT
content-type: text/html; charset=utf-8
access-control-allow-origin: *
access-control-allow-credentials: true
content-length: 0
x-envoy-upstream-service-time: 39➜  curl -I -HHost:httpbin.example.com http://localhost/status/504
HTTP/1.1 504 Gateway Timeout
server: istio-envoy
date: Sat, 03 Jul 2021 09:56:52 GMT
content-type: text/html; charset=utf-8
access-control-allow-origin: *
access-control-allow-credentials: true
content-length: 0
x-envoy-upstream-service-time: 38➜  time curl -I -HHost:httpbin.example.com http://localhost/delay/2
HTTP/1.1 200 OK
server: istio-envoy
date: Sat, 03 Jul 2021 09:57:35 GMT
content-type: application/json
content-length: 737
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 2009curl -I -HHost:httpbin.example.com http://localhost/delay/2  0.00s user 0.01s system 0% cpu 2.023 total➜  time curl -I -HHost:httpbin.example.com http://localhost/delay/5
HTTP/1.1 200 OK
server: istio-envoy
date: Sat, 03 Jul 2021 09:58:32 GMT
content-type: application/json
content-length: 737
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 5005curl -I -HHost:httpbin.example.com http://localhost/delay/5  0.00s user 0.01s system 0% cpu 5.016 total

三、认识Egress
  Egress网关允许您通过自定义Egress网关策略,来管理集群内部服务的流量出集群时的控制管理。
 

四、Egress实验

1)查看集群Egress Gateway组件是否存在

➜  kubectl get pods -n istio-system | grep egressgateway
istio-egressgateway-5796fb8ccf-jjtjl    1/1     Running   2          14d

2)创建sleep服务

➜  kubectl apply -f ../../samples/sleep/sleep.yaml
serviceaccount/sleep created
service/sleep created
deployment.apps/sleep created➜  kubectl get pods -o wide | grep sleep
sleep-557747455f-rhj7k            2/2     Running   0          28s   10.1.8.134   docker-desktop   <none>           <none>➜  kubectl get deploy  -o wide | grep sleep
sleep            1/1     1            1           49s   sleep         curlimages/curl                                           app=sleep➜  kubectl get rs -o wide | grep sleep
sleep-557747455f            1         1         1       59s   sleep         curlimages/curl                                           app=sleep,pod-template-hash=557747455f➜  kubectl get svc  -o wide | grep sleep
sleep         ClusterIP   10.106.229.29    <none>        80/TCP     66s   app=sleep

3)为外部服务定义Service Entry

➜  cat serviceentry.yaml
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:name: httpbin
spec:hosts:- httpbin.orgports:- number: 80name: http-portprotocol: HTTPresolution: DNS➜  kubectl apply -f serviceentry.yaml
serviceentry.networking.istio.io/httpbin created➜  kubectl get serviceentry -o wide
NAME      HOSTS             LOCATION   RESOLUTION   AGE
httpbin   ["httpbin.org"]              DNS          22s➜  kubectl describe  serviceentry httpbin
Name:         httpbin
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         ServiceEntry
Metadata:Creation Timestamp:  2021-07-03T10:11:12ZGeneration:          1Managed Fields:API Version:  networking.istio.io/v1alpha3Fields Type:  FieldsV1fieldsV1:f:metadata:f:annotations:.:f:kubectl.kubernetes.io/last-applied-configuration:f:spec:.:f:hosts:f:ports:f:resolution:Manager:         kubectl-client-side-applyOperation:       UpdateTime:            2021-07-03T10:11:12ZResource Version:  637531Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/serviceentries/httpbinUID:               ff8a43a4-a5d2-410c-ad7a-62d967f31c02
Spec:Hosts:httpbin.orgPorts:Name:      http-portNumber:    80Protocol:  HTTPResolution:  DNS
Events:        <none>

4)查看Egress Gateway日志,查看sleep服务访问外部服务是否经过Egress Gateway

➜  kubectl logs -f istio-egressgateway-5796fb8ccf-jjtjl -n istio-systemkubectl exec -it sleep-557747455f-rhj7k  -c sleep -- curl http:/httpbin.org/ip
{"origin": "58.49.32.170"
}


5)定义路由,将流量引导至Egress Gateway

➜  cat virtualservice.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: vs-for-egressgateway
spec:hosts:- httpbin.orggateways:- istio-egressgateway- meshhttp:- match:- gateways:- methport: 80route: - destination:host: istio-egressgateway.istio-system.svc.cluster.localsubset: httpbinport:number: 80weight: 100- match:- gateways:- istio-egressgatewayport: 80route:- destination:host: httpbin.orgport: number: 80weight: 100➜  kubectl apply -f virtualservice.yaml
virtualservice.networking.istio.io/vs-for-egressgateway created➜  kubectl get vs -o wide  | grep vs-for-egressgateway
vs-for-egressgateway   ["istio-egressgateway","mesh"]   ["httpbin.org"]           21s➜  kubectl describe vs vs-for-egressgateway
Name:         vs-for-egressgateway
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         VirtualService
Metadata:Creation Timestamp:  2021-07-03T10:18:46ZGeneration:          1Managed Fields:API Version:  networking.istio.io/v1alpha3Fields Type:  FieldsV1fieldsV1:f:metadata:f:annotations:.:f:kubectl.kubernetes.io/last-applied-configuration:f:spec:.:f:gateways:f:hosts:f:http:Manager:         kubectl-client-side-applyOperation:       UpdateTime:            2021-07-03T10:18:46ZResource Version:  638484Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/virtualservices/vs-for-egressgatewayUID:               cbd00a94-cb8d-46f5-9669-6df3584e0178
Spec:Gateways:istio-egressgatewaymeshHosts:httpbin.orgHttp:Match:Gateways:methPort:  80Route:Destination:Host:  istio-egressgateway.istio-system.svc.cluster.localPort:Number:  80Subset:    httpbinWeight:      100Match:Gateways:istio-egressgatewayPort:  80Route:Destination:Host:  httpbin.orgPort:Number:  80Weight:      100
Events:            <none>
➜  cat destinationrule.yaml
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: dr-for-egressgateway
spec:host: istio-egressgateway.istio-system.svc.cluster.localsubsets:- name: httpbin➜  kubectl apply -f destinationrule.yaml
destinationrule.networking.istio.io/dr-for-egressgateway created➜  kubectl get dr -o wide
NAME                   HOST                                                 AGE
dr-for-egressgateway   istio-egressgateway.istio-system.svc.cluster.local   6s➜  kubectl describe dr dr-for-egressgateway
Name:         dr-for-egressgateway
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         DestinationRule
Metadata:Creation Timestamp:  2021-07-03T10:21:31ZGeneration:          1Managed Fields:API Version:  networking.istio.io/v1alpha3Fields Type:  FieldsV1fieldsV1:f:metadata:f:annotations:.:f:kubectl.kubernetes.io/last-applied-configuration:f:spec:.:f:host:f:subsets:Manager:         kubectl-client-side-applyOperation:       UpdateTime:            2021-07-03T10:21:31ZResource Version:  638834Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/destinationrules/dr-for-egressgatewayUID:               bee9b39e-a9ac-4e36-803d-153bdf40c97d
Spec:Host:  istio-egressgateway.istio-system.svc.cluster.localSubsets:Name:  httpbin
Events:    <none>

6)再次使用sleep服务访问外部服务,查看Egress Gateway是否有相应的日志

 kubectl exec -it sleep-557747455f-rhj7k  -c sleep -- curl http:/httpbin.org/ip
{"origin": "113.57.121.60"
}➜  kubectl logs -l istio=egressgateway -c istio-proxy -n istio-system | tail
[2021-07-03 T18:38:49.810Z] "GET /politics HTTP/2" 200 - "-" "-" 0 0 1445 1444 "10.80.3.231" "curl/7.64.0" "2151bde2-4382-4e2f-b088-e464943c2a9b" "httpbin.org" "113.57.121.60:80" outbound|80||edition.cnn.com 10.80.3.232:51516 10.80.3.232:8080 10.80.3.231:38072 - -

Istio的Ingress与Egress网关相关推荐

  1. 六, 跨语言微服务框架 - Istio Ingress和Egress详解(解决Istio无法外网访问问题)

    在微服务中另外一个重点就是网关,网关理论包含入口网关和出口网关,传统意义上的网关很难做到出口网络控制,但是对于Istio是一件非常轻松的事情(因为所有的出口流量都会经过Istio),入口网关控制解析路 ...

  2. k8s ingress and egress

    上次面试被问到Ingress 一脸懵逼 -_-||,这回学习记录一下. simple architecture of ingress in k8s: create ingress controller ...

  3. 7-4 NetworkPolicy网络策略简介与Ingress及Egress案例

    文章目录 前言 准备工作 linux命名空间 python命名空间 Ingress策略 podSelector podSelector-SinglePort podSelector-MultiPort ...

  4. Istio 大咖说第 7 期直播预告:基于 Envoy/Istio 的云原生 API 网关——开源项目 Hango 的设计与实现...

    讲师简介 韩佳浩,网易数帆资深研发工程师,主导 Hango 网关开源研发及设计,负责网易数帆轻舟 API 网关集团内部大规模落地及产品化建设.具有三年网关相关研发及大规模实践经验. 话题介绍 云原生架 ...

  5. Configure an Egress Gateway(0.8)

    Control Egress Traffic task 演示了在服务网格内的应用如何访问外部(k8s集群外)的HTTP和HTTPS服务.快速提醒:默认情况下,启用Istio的应用不能访问集群外部的UR ...

  6. Istio 架构的演进,为什么会有 istiod ?

    Service Mesh 化繁为简:基于 Istiod 回归单体设计 作为 Service Mesh 领域最具权威的控制面,Istio 从 2017 年发布第一个版本后,就有着一个堪称"非常 ...

  7. Istio Egress Gateway出口流量管理

    缺省状态下,Istio服务网格内的Pod,由于其iptables将所有外发流量都透明的转发给了sidecar,所以这些集群内的服务无法访问集群之外的 URL,而只能处理集群内部的目标. 控制出口流量描 ...

  8. 基于Istio Ingress对外提供服务

    文章目录 创建应用服务 创建VirtualService 通过Ingress Gateway访问服务 分析请求过程 Ingress Gateway Service iptables规则 Envoy配置 ...

  9. Istio 首次安全评估结果公布

    本文译自 Istio 社区官方博客 Announcing the results of Istio's first security assessment[1],作者 Neeraj Poddar,译者 ...

最新文章

  1. Unity2D游戏开发基础教程1.2 项目、资源和场景
  2. 从oracle9i/92数据库中导出数据至 oracle 8.1.7 数据库中
  3. YoloV5 最强剪枝技术 模型压缩,3ms推理的YoloV5mAP60
  4. 小波的秘密6_小波包的理解
  5. 深度学习:神经网络,softmax + cross entropy,非tensorflow方式
  6. linux svn cleanup 用法,SVN命令之清理命令(clean up)的功能及使用技巧
  7. 29使用QRcode方式生成二维码
  8. 手机端判断触摸滑动方向
  9. b2c京东流程图_京东商城的商业模式及其运作流程(精)
  10. JavaScript基础知识
  11. 关于iOS7越狱的整理
  12. Gsensor驱动调试
  13. [第一篇] 桌面快捷方式小箭头的取消与恢复
  14. c/s模型和b/s模型
  15. Qt 自定义tablewidget(背景色,标题箭头)
  16. WIN10+VS2015部署PanddleOCR
  17. 重构机器学习算法的知识体系 - 《终极算法》读书笔记
  18. Python pip 修改镜像源为豆瓣源的两种方法
  19. 开机出现“Disk I/O error”的故障解决
  20. nacl溶解度_科普下氯化钠溶解度

热门文章

  1. 代码审计之rips之bluecms审计
  2. Android解析域名获取IP
  3. python选股接口_财码Python量化选股(三)选股分析
  4. Python实现定时在微信群发送消息
  5. win10 凭据管理
  6. (二)ElasticSearch实战基础教程(ElasticSearch入门)
  7. java中,判断当前时间是否处于某个一个时间段内
  8. 不积小流,无以成江海;不积跬步,无以至千里
  9. OpenGL + Win32 SDK 开发框架的搭建(C语言版)
  10. Tansat XCO2数据下载