istio-ingress/egress

1、ingress

        在k8s+istio环境中,可以通过istio-ingress(类似于OpenResty、Nginx)允许将集群内部服务暴露出去,注意namespace

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: product
  namespace: product
  annotations:
    kubernetes.io/ingress.class: "istio"
spec:
  rules:
  - http:
      paths:
      - path: /sz/.*
        backend:
          serviceName: productdetail
          servicePort: 8081

2、egress

        默认情况下,有istio管理的服务不能访问集群外部url,原因是istio所管理的服务的流量均走sidercar代理envoy,而该代理默认只会转发集群内部流量(如遇到connection refused...被这问题困扰了好久...),所以,若想与集群外部服务交互,需进行配置egress,目前支持http、https、tcp协议。

2.1、http egress

apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
  name: baidu-egress-rule
spec:
  destination:
    service: www.baidu.com
  ports:
    - port: 80
      protocol: http

2.2、https egress

apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
  name: https-baidu-egress-rule
spec:
  destination:
    service: www.baidu.com
  ports:
    - port: 443
      protocol: https

2.3、tcp egress

apiVersion: config.istio.io/v1alpha2
kind: EgressRule
metadata:
  name: tcp-logservice-egress-rule
spec:
  destination:
    service: 10.0.0.111
  ports:
    - port: 8080
      protocol: tcp

2.4、其他

        除此之外,我们可以在启用istioctl注入相关yaml文件时加上,--includeIPRanges=10.0.0.1/24,IP为集群内IP。        

istioctl kube-inject -f  k8s.yaml  --includeIPRanges=10.0.0.1/24> k8s-istio.yaml
kubectl apply -f k8s-istio.yaml

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值