k8s-ingress控制器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s-ingress控制器相关的知识,希望对你有一定的参考价值。
参考技术A Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。
你可以在集群中部署任意数量的 ingress 控制器。 创建 ingress 时,应该使用适当的 ingress.class 注解每个
Ingress 以表明在集群中如果有多个 Ingress 控制器时,应该使用哪个 Ingress 控制器。
如果不定义 ingress.class ,云提供商可能使用默认的 Ingress 控制器。
Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。
Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管
默认配置从 所有名称空间 监视Ingress对象。
若要更改此行为,请使用该标志 --watch-namespace 将范围限制为特定的名称空间。
裸机安装: 版本不同具体根据查看官网 https://kubernetes.github.io/ingress-nginx/deploy/
配置通过主机80,443端口访问
github
安装文档
Kubernetes中的Ingress API使大量控制器能够提供简单而强大的方法来管理到Kubernetes工作负载的入站网络流量。在Kubernetes 1.18中,我们对该API进行了3个重要的添加:
ingressclass概念:
kubectl get svc -n ingress-nginx
外部访问 http://www.kubetest.com:32180/hostname.html
原理相当于把规则注入到nginx配置文件中
进入ingress-nginx可以看到相关nginx配置文件配置
kubectl exec -it ingress-nginx-controller-785557f9c9-skgkw -n ingress-nginx /bin/bash
基于名称的虚拟主机支持将针对多个主机名的 HTTP 流量路由到同一 IP 地址上。
ingress.http1.yaml
ingress.http2.yaml
ingressrule.yaml
https://kubernetes.github.io/ingress-nginx/examples/auth/client-certs/
创建自签证书
外部访问 https://www.ingress.com:30700/
根据查看配置文件及测试发现 只要配置了tls,所有ingress的所有域名都有https
Basic Authentication
本示例说明如何使用包含由生成的文件的机密在Ingress规则中添加身份验证 htpasswd 。生成的文件的名称很重要 auth (实际上-机密具有密钥 data.auth ),否则入口控制器将返回503。
验证
curl -v http://10.0.0.2:32180 -H \'Host: foo.bar.com\' -u \'foo:123\'
部署方式
可以使用以下注释控制重写:
以上是关于k8s-ingress控制器的主要内容,如果未能解决你的问题,请参考以下文章