istio实现对外暴露服务
1、确认istio-ingressgateway是否有对外的IP
kubectl get service istio-ingressgateway -n istio-system
如果 EXTERNAL-IP
有值(IP 地址或主机名),则说明您的环境具有可用于 Ingress 网关的外部负载均衡器。如果 EXTERNAL-IP
值是 <none>
(或一直是 <pending>
),则说明可能您的环境并没有为 Ingress 网关提供外部负载均衡器的功能。
可以通过以下方法添加外部IP
kubectl edit service istio-ingressgateway -n istio-system
kubectl get service istio-ingressgateway -n istio-system
二、建立deployment、service、Gateway、VirtualService
1)新建nginx-istio-test.yaml
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-app spec: replicas: 1 template: metadata: annotations: sidecar.istio.io/inject: "true" labels: app: nginx-app spec: containers: - name: nginx-app image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx-svc labels: svcname: nginx-svc spec: ports: - port: 8088 protocol: TCP targetPort: 80 selector: app: nginx-app --- apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: nginx-gateway spec: selector: istio: ingressgateway # use Istio default gateway implementation servers: - port: number: 80 name: nginx-http protocol: HTTP hosts: - istio-nginx.boshen.com --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: nginx-vs spec: hosts: - istio-nginx.boshen.com gateways: - nginx-gateway http: - match: - uri: prefix: / route: - destination: port: number: 8088 host: nginx-svc
在Gateway中
VirtualService
映射的就是 Envoy 中的 Http Route Table
,大家可以注意到上面的 VirtualService 配置文件中有一个 gateways
字段,如果有这个字段,就表示这个 Http Route Table 是绑在 ingressgateway
的 Listener
中的;如果没有这个字段,就表示这个 Http Route Table 是绑在 Istio 所管理的所有微服务应用的 Pod 上的。
2)部署yaml
kubectl apply -f nginx-istio-test.yaml
3)在k8s的master节点和node节点的/etc/hosts里面加上以下内容
4)在windows机器上的C:\Windows\System32\drivers\etc\hosts里面加上
5)在浏览器访问:http://istio-nginx.boshen.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架