Sidecar配置示例

出向侦听器未配置前

[root@master ~]# istioctl pc listeners sleep-78ff5975c6-75q5z
ADDRESS       PORT  MATCH                                                                                         DESTINATION
10.96.0.10    53    ALL                                                                                           Cluster: outbound|53||kube-dns.kube-system.svc.cluster.local
0.0.0.0       80    Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 80
0.0.0.0       80    ALL                                                                                           PassthroughCluster
10.100.158.64 443   ALL                                                                                           Cluster: outbound|443||istiod.istio-system.svc.cluster.local
10.107.50.227 443   ALL                                                                                           Cluster: outbound|443||istio-ingressgateway.istio-system.svc.cluster.local
10.96.0.1     443   ALL                                                                                           Cluster: outbound|443||kubernetes.default.svc.cluster.local
10.97.157.5   443   ALL                                                                                           Cluster: outbound|443||istio-egressgateway.istio-system.svc.cluster.local
10.102.103.8  3000  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: grafana.istio-system.svc.cluster.local:3000
10.102.103.8  3000  ALL                                                                                           Cluster: outbound|3000||grafana.istio-system.svc.cluster.local
10.211.55.28  4194  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: kubelet.kube-system.svc.cluster.local:4194
10.211.55.28  4194  ALL                                                                                           Cluster: outbound|4194||kubelet.kube-system.svc.cluster.local
10.211.55.29  4194  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: kubelet.kube-system.svc.cluster.local:4194
10.211.55.29  4194  ALL                                                                                           Cluster: outbound|4194||kubelet.kube-system.svc.cluster.local
10.211.55.30  4194  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: kubelet.kube-system.svc.cluster.local:4194
10.211.55.30  4194  ALL                                                                                           Cluster: outbound|4194||kubelet.kube-system.svc.cluster.local
0.0.0.0       9090  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 9090
0.0.0.0       9090  ALL                                                                                           PassthroughCluster
10.96.0.10    9153  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: kube-dns.kube-system.svc.cluster.local:9153
10.96.0.10    9153  ALL                                                                                           Cluster: outbound|9153||kube-dns.kube-system.svc.cluster.local
0.0.0.0       9411  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 9411
0.0.0.0       9411  ALL                                                                                           PassthroughCluster
10.211.55.28  10250 ALL                                                                                           Cluster: outbound|10250||kubelet.kube-system.svc.cluster.local
10.211.55.29  10250 ALL                                                                                           Cluster: outbound|10250||kubelet.kube-system.svc.cluster.local
10.211.55.30  10250 ALL                                                                                           Cluster: outbound|10250||kubelet.kube-system.svc.cluster.local
0.0.0.0       10255 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 10255
0.0.0.0       10255 ALL                                                                                           PassthroughCluster
10.111.46.147 14250 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: jaeger-collector.istio-system.svc.cluster.local:14250
10.111.46.147 14250 ALL                                                                                           Cluster: outbound|14250||jaeger-collector.istio-system.svc.cluster.local
10.111.46.147 14268 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: jaeger-collector.istio-system.svc.cluster.local:14268
10.111.46.147 14268 ALL                                                                                           Cluster: outbound|14268||jaeger-collector.istio-system.svc.cluster.local
0.0.0.0       15001 ALL                                                                                           PassthroughCluster
0.0.0.0       15001 Addr: *:15001                                                                                 Non-HTTP/Non-TCP
0.0.0.0       15006 Addr: *:15006                                                                                 Non-HTTP/Non-TCP
0.0.0.0       15006 Trans: tls; App: istio-http/1.0,istio-http/1.1,istio-h2; Addr: 0.0.0.0/0                      InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: raw_buffer; App: http/1.1,h2c; Addr: 0.0.0.0/0                                         InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; App: TCP TLS; Addr: 0.0.0.0/0                                                     InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: raw_buffer; Addr: 0.0.0.0/0                                                            InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; Addr: 0.0.0.0/0                                                                   InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; App: istio,istio-peer-exchange,istio-http/1.0,istio-http/1.1,istio-h2; Addr: *:80 Cluster: inbound|80||
0.0.0.0       15006 Trans: raw_buffer; Addr: *:80                                                                 Cluster: inbound|80||
0.0.0.0       15010 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 15010
0.0.0.0       15010 ALL                                                                                           PassthroughCluster
10.100.158.64 15012 ALL                                                                                           Cluster: outbound|15012||istiod.istio-system.svc.cluster.local
0.0.0.0       15014 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 15014
0.0.0.0       15014 ALL                                                                                           PassthroughCluster
0.0.0.0       15021 ALL                                                                                           Inline Route: /healthz/ready*
10.107.50.227 15021 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: istio-ingressgateway.istio-system.svc.cluster.local:15021
10.107.50.227 15021 ALL                                                                                           Cluster: outbound|15021||istio-ingressgateway.istio-system.svc.cluster.local
0.0.0.0       15090 ALL                                                                                           Inline Route: /stats/prometheus*
10.107.50.227 15443 ALL                                                                                           Cluster: outbound|15443||istio-ingressgateway.istio-system.svc.cluster.local
0.0.0.0       16685 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 16685
0.0.0.0       16685 ALL                                                                                           PassthroughCluster
0.0.0.0       20001 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 20001
0.0.0.0       20001 ALL                                                                                           PassthroughCluster
10.107.50.227 31400 ALL 

配置Sidecar

[root@master ~]# kubectl apply -f sidecar-demo.yaml 
sidecar.networking.istio.io/sleep-sidecar created
[root@master ~]# cat sidecar-demo.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: sleep-sidecar
  namespace: default
spec:
  workloadSelector:
    labels:
      app: sleep
  egress:
  - hosts:
    - "./*"

出向侦听器只包含当前名称空间下的配置

[root@master ~]# istioctl pc listeners sleep-78ff5975c6-75q5z
ADDRESS   PORT  MATCH                                                                                         DESTINATION
0.0.0.0   80    Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 80
0.0.0.0   80    ALL                                                                                           PassthroughCluster
10.96.0.1 443   ALL                                                                                           Cluster: outbound|443||kubernetes.default.svc.cluster.local
0.0.0.0   15001 ALL                                                                                           PassthroughCluster
0.0.0.0   15001 Addr: *:15001                                                                                 Non-HTTP/Non-TCP
0.0.0.0   15006 Addr: *:15006                                                                                 Non-HTTP/Non-TCP
0.0.0.0   15006 Trans: tls; App: istio-http/1.0,istio-http/1.1,istio-h2; Addr: 0.0.0.0/0                      InboundPassthroughClusterIpv4
0.0.0.0   15006 Trans: raw_buffer; App: http/1.1,h2c; Addr: 0.0.0.0/0                                         InboundPassthroughClusterIpv4
0.0.0.0   15006 Trans: tls; App: TCP TLS; Addr: 0.0.0.0/0                                                     InboundPassthroughClusterIpv4
0.0.0.0   15006 Trans: raw_buffer; Addr: 0.0.0.0/0                                                            InboundPassthroughClusterIpv4
0.0.0.0   15006 Trans: tls; Addr: 0.0.0.0/0                                                                   InboundPassthroughClusterIpv4
0.0.0.0   15006 Trans: tls; App: istio,istio-peer-exchange,istio-http/1.0,istio-http/1.1,istio-h2; Addr: *:80 Cluster: inbound|80||
0.0.0.0   15006 Trans: raw_buffer; Addr: *:80                                                                 Cluster: inbound|80||
0.0.0.0   15021 ALL                                                                                           Inline Route: /healthz/ready*
0.0.0.0   15090 ALL                                                                                           Inline Route: /stats/prometheus*

 更改Sidecar配置

[root@master ~]# kubectl apply -f sidecar-demo.yaml 
sidecar.networking.istio.io/sleep-sidecar unchanged
[root@master ~]# cat sidecar-demo.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: sleep-sidecar
  namespace: default
spec:
  workloadSelector:
    labels:
      app: sleep
  egress:
  - hosts:
    - "./*"
    - "istio-system/*"

再次查看Listener发现已经多了

[root@master ~]# istioctl pc listeners sleep-78ff5975c6-75q5z
ADDRESS       PORT  MATCH                                                                                         DESTINATION
0.0.0.0       80    Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 80
0.0.0.0       80    ALL                                                                                           PassthroughCluster
10.100.158.64 443   ALL                                                                                           Cluster: outbound|443||istiod.istio-system.svc.cluster.local
10.107.50.227 443   ALL                                                                                           Cluster: outbound|443||istio-ingressgateway.istio-system.svc.cluster.local
10.96.0.1     443   ALL                                                                                           Cluster: outbound|443||kubernetes.default.svc.cluster.local
10.97.157.5   443   ALL                                                                                           Cluster: outbound|443||istio-egressgateway.istio-system.svc.cluster.local
10.102.103.8  3000  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: grafana.istio-system.svc.cluster.local:3000
10.102.103.8  3000  ALL                                                                                           Cluster: outbound|3000||grafana.istio-system.svc.cluster.local
0.0.0.0       9090  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 9090
0.0.0.0       9090  ALL                                                                                           PassthroughCluster
0.0.0.0       9411  Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 9411
0.0.0.0       9411  ALL                                                                                           PassthroughCluster
10.111.46.147 14250 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: jaeger-collector.istio-system.svc.cluster.local:14250
10.111.46.147 14250 ALL                                                                                           Cluster: outbound|14250||jaeger-collector.istio-system.svc.cluster.local
10.111.46.147 14268 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: jaeger-collector.istio-system.svc.cluster.local:14268
10.111.46.147 14268 ALL                                                                                           Cluster: outbound|14268||jaeger-collector.istio-system.svc.cluster.local
0.0.0.0       15001 ALL                                                                                           PassthroughCluster
0.0.0.0       15001 Addr: *:15001                                                                                 Non-HTTP/Non-TCP
0.0.0.0       15006 Addr: *:15006                                                                                 Non-HTTP/Non-TCP
0.0.0.0       15006 Trans: tls; App: istio-http/1.0,istio-http/1.1,istio-h2; Addr: 0.0.0.0/0                      InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: raw_buffer; App: http/1.1,h2c; Addr: 0.0.0.0/0                                         InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; App: TCP TLS; Addr: 0.0.0.0/0                                                     InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: raw_buffer; Addr: 0.0.0.0/0                                                            InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; Addr: 0.0.0.0/0                                                                   InboundPassthroughClusterIpv4
0.0.0.0       15006 Trans: tls; App: istio,istio-peer-exchange,istio-http/1.0,istio-http/1.1,istio-h2; Addr: *:80 Cluster: inbound|80||
0.0.0.0       15006 Trans: raw_buffer; Addr: *:80                                                                 Cluster: inbound|80||
0.0.0.0       15010 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 15010
0.0.0.0       15010 ALL                                                                                           PassthroughCluster
10.100.158.64 15012 ALL                                                                                           Cluster: outbound|15012||istiod.istio-system.svc.cluster.local
0.0.0.0       15014 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 15014
0.0.0.0       15014 ALL                                                                                           PassthroughCluster
0.0.0.0       15021 ALL                                                                                           Inline Route: /healthz/ready*
10.107.50.227 15021 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: istio-ingressgateway.istio-system.svc.cluster.local:15021
10.107.50.227 15021 ALL                                                                                           Cluster: outbound|15021||istio-ingressgateway.istio-system.svc.cluster.local
0.0.0.0       15090 ALL                                                                                           Inline Route: /stats/prometheus*
10.107.50.227 15443 ALL                                                                                           Cluster: outbound|15443||istio-ingressgateway.istio-system.svc.cluster.local
0.0.0.0       16685 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 16685
0.0.0.0       16685 ALL                                                                                           PassthroughCluster
0.0.0.0       20001 Trans: raw_buffer; App: http/1.1,h2c                                                          Route: 20001
0.0.0.0       20001 ALL                                                                                           PassthroughCluster
10.107.50.227 31400 ALL                                                                                           Cluster: outbound|31400||istio-ingressgateway.istio-system.svc.cluster.local

 

示例2: client仅可以访问网格内的proxy服务,不能直接访问demoapp服务

[root@master ~]# kubectl apply -f sidecar-client.yaml 
sidecar.networking.istio.io/client created
[root@master ~]# cat sidecar-client.yaml 
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: client
  namespace: default
spec:
  workloadSelector:
    labels:
      run: client
  outboundTrafficPolicy:
    mode: REGISTRY_ONLY
  egress:
  - port:
      number: 80
      protocol: HTTP
      name: proxy
    hosts:
    - "./*"

 

posted @ 2022-11-25 13:59  Maniana  阅读(116)  评论(0编辑  收藏  举报