java系统找不到指定文件怎么解决
296
2022-09-09
K8S之Ingress
文章目录
一、概念
`1.1.NodePort存在的不足``1.2.Ingress`
二、部署Ingress Controller(全局的负载均衡)
`2.1.Ingress Contronler工作原理``2.2.下载yaml文件``2.3.下载镜像``2.4.修改mandatory.yaml`
三、基于HTTP的Ingress规则
`3.1.yaml文件``3.2.访问域名`
四、基于HTTPS的Ingress规则
`4.1.生成自签证书``4.2.创建secret``4.3.Ingress规则`
参考视频:只支持4层负载均衡(NodeIP+Port)
1.2.Ingress
Ingress 公开了从集群外部到集群内服务的HTTP和HTTPS路由。流量路由由Ingress资源上定义的规则控制。
关联Service
通过Ingress Controller实现Pod的负载均衡
二、部署Ingress Controller(全局的负载均衡)
2.1.Ingress Contronler工作原理
Ingress Contronler通过与 Kubernetes API 交互,动态感知集群中 Ingress 规则变化,然后读取它,根据Ingress规则生成一段 Nginx 配置,应用到管理的Nginx服务,然后热加载生效。 以此来达到Nginx负载均衡器配置及动态更新的问题。
数据包流程:客户端 ->Ingress Controller(nginx) ->ServiceName:Port ->分布在各节点Pod
2.2.下载yaml文件
2.3.下载镜像
docker pull siriuszg/nginx-ingress-controller:0.30.0
2.4.修改mandatory.yaml
三、基于HTTP的Ingress规则
3.1.yaml文件
apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata: name: ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /spec: rules: - host: foo.bar.com paths: - backend: serviceName: web servicePort: 80
解释
host: foo.bar.com #访问Ingress的域名serviceName: web #管理服务名为web的ServiceservicePort: 80 #Service监听的端口为80,通过kubectl get svc查看
3.2.访问域名
查看nginx-ingress-controller部署到哪个节点上
kubectl get pod -o wide -ningress-nginx
echo "192.168.1.10 foo.bar.com" >> /etc/hostscurl foo.bar.com
四、基于HTTPS的Ingress规则
4.1.生成自签证书
openssl genrsa > cert.keyopenssl req -new -x509 -key cert.key -subj "/CN=common" >cert.pe
4.2.创建secret
kubectl create secret tls foo-bar-com --cert=cert.pem --key=cert.keykubectl get secrets
4.3.Ingress规则
apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata: name: tls-example-ingressspec: tls: - hosts: - foo.bar.com secretName: foo-bar-com rules: - host: foo.bar.com paths: - path: / backend: serviceName: web servicePort: 80
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~