在 Kubernetes 中,Ingress 是一种资源对象,用于定义对集群内部的服务进行访问的规则。它充当了一个入口点,允许外部流量进入 Kubernetes 集群并路由到相应的服务。
vi hello-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-igc
spec:
rules:
- host: hello-ingress.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hello-service
port:
number: 8088
注意:
1 从 Kubernetes 1.19 版本开始,建议使用 networking.k8s.io/v1 作为 Ingress 的 apiVersion.
2 在 Kubernetes 的 Ingress YAML 中,port 字段指定用户访问 Ingress 域名时所使用的端口。但需要注意的是,这个端口是 Ingress 控制器暴露的端口,而不是后端服务的端口
3 pathtype为必填项
minikube addons enable ingress
kubectl create -f hello-ingress.yaml
注意,可以看到图中ingress的IP为192.168.49.2
,在 Minikube 中,默认的网络地址段(CIDR)是 192.168.49.0/24。这个地址段是由 Minikube 创建的虚拟网络环境中的默认网络范围。如果直接通过终端访问这个ingress的IP将无法联通
根据minikube官网介绍,需要使用minikube tunnel
来打通minikube和宿主机的网络:
执行后展示:
下一步进行终端验证,执行curl 127.0.0.1
后可以发现通过宿主机(macbook)已经可以访问ingress的服务,多次curl请求会返回不同的pod ip,说明在上一篇中的loadbalance服务已经生效,请求会被负载均衡到不同的pod
k8s学习笔记合集:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。