Kubernetes Ingress
理论学习
Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。
Ingress 资源示例:
apiVersion: networking.k8s.io/v1 # 指定 Kubernetes 中使用的 API 版本
kind: Ingress # 指定对象的类型
metadata: # 包含有关对象的元数据信息name: minimal-ingressannotations: # 配置 Nginx Ingress 控制器的重写目标nginx.ingress.kubernetes.io/rewrite-target: /
spec: # 指定了 Ingress 对象的规范,即其配置ingressClassName: nginx-example # 指定要使用的 Ingress 控制器的类别或类型rules: # 定义路由规则- http:paths: # 定义了针对特定路径的路由规则列表- path: /testpathpathType: Prefix # 指定路径的类型 "Prefix"(前缀匹配) "Exact"(精确匹配)backend: # 指定后端服务service:name: testport:number: 80
实战练习
操作步骤
- (标准步骤) 进入题目指定集群
$ kubectl config use-context k8s
- 查看 Ingressclass 名称并记录
$ kubectl get ingressclass
$ vim ingress.yaml
- 在官网上复制默认 Ingress 配置文件并再此基础上修改
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: pingnamespace: ing-internalannotations:nginx.ingress.kubernetes.io/rewrite-target: /
spec:ingressClassName: nginxrules:- http:paths:- path: /hellopathType: Prefixbackend:service:name: helloport:number: 5678
- 应用配置文件创建 Ingress
$ kubectl apply -f ingress.yaml
检查命令
$ kubectl -n ing-internal get ingress # 配置完成后需要等待三分钟才能显示 ADDRESS
$ curl 10.110.140.170/hi
参考链接:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/#default-ingress-class