ingress实现https代理访问

本文详细介绍了在Kubernetes环境中使用openssl生成自签名证书、管理secrets以及部署Nginx和TraefikIngress控制器的过程,对比了daemonset和deployment的不同部署方式,强调了HTTPS加密和认证设置的重要性。
摘要由CSDN通过智能技术生成

证书

密钥

创建证书 钥

secrets 保存密钥信息,部署pod时把secrets挂载到pod

openssl reg -x509 -sha256 -nodes -days 365 -newkey ras:2048 -keyout tls.key -out tls.crt -subi "/CN=nginxsvc/0=nginxsvc"

req: 生成证书文件的情趣

x509: 生成x.509自签名的证书

sha256:表示使用sha-256的散列算法

-nodes:表示生成的密钥不加密

days 365: 证书有效期是365天

-newkey rsa:2048: RSA的密钥对,长度2048位

keyout tls.key -out tls.crt: 密钥文件 key 证书文件

crt-subj"/CN=nginxsvc/0=nginxsvc": 主题,CN common name o: organization 组织

nginx的登录账户认证:

nginx的重写,nginx的重定向

nginx-ingress-controller

traefik ingress controller:

traefik是一个为了让部署微服务更加快捷而诞生的一个http方向代理,负载均衡

traefik设计时就能够实时的和k8s API交互,感知后端service以及pod的变化,可以自动更新配置和重载

pod内 nginx 80 8081

traefik的部署方式:

daemonset

特点

优点: 每个节点都会部署一个traefik,节点感知,可以自动发现,更新容器的配置。不需要手动重载。

缺点: 资源占用,大型集群中,deamonset可能会运行多个traefik的实力,尤其是节点上不需要大量容器运行的情况下。没有办法扩缩容

部署对外集群:对外的业务会经常变更,deamonset可以更好的,自动的发现服务配置变更

deployment

优点:集中办公控制,可以使用少量的实例来运行处理整个集群的流量。更容易升级和维护

缺点: deployment的负载均衡不会均分到每个节点。手动更新,无法感知容器内部配置的变化

部署对内集群:对内的相对稳定,更新和变化也比较少,适合deployment

traffic-tye: internal  对内服务

traffic-type: external  对外服务

nginx-ingress:

工作原理都一样,都是7层代理,都可以动态的更新配置,都可以自动发现服务

traefik-ingress: 白动更新的重载更快,更方便

traefik的并发能力只有nginx-ingress的6成 60%

nginx-ingress-controller

traefik

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-deployment.yaml

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-rbac.yaml

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/traefik-ds.yaml

wget  https://gitee.com/mirrors/traefik/raw/v1.7/examples/k8s/ui.yaml

ingress:

nginx-ingresscontroller

deployment+loadbalancer: 公有云提供负载均衡的公网地址

daemonset+hostbnetworktnodeseletor: 和节点服务共享网络,一个节点一个cntroller pod.使用宿主机的端口性能每好,适合大并发

deployment+NodePort: 最常见,最常用,最简单的方法。但是性能不太好,多了一成nat也址转发。

traefik-ingress-controller

daemonset 对外 可以自动更新容器的配置 host 节点网络

deployment 对内 无法自动自动更新配置 NodePort

https:

1.生成证书密

2.创建secret,保存证书和密钥

3.创建ingress把secret导入

加密认证:

1、htpasswd -c auth 认证文件只能是auth

2、创建ingress:

nginx.ingress .kubernetes .io/auth-type: basic

#声明认证类型

nginx,ingress .kubernetes ,io/auth-secret: basic-auth

#导入认证的密钥文件

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

91888888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值