k8s-ingress

Ingress实现https代理访问:

证书

密钥

创建证书,密钥

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

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/0=nginxsvc"

解析:

Req:生成证书文件的情况

 -x509:生成-x509自签名的证书

-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

演示:

加密

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/0=nginxsvc"

kubectl create secret tls tls-secret --key tls.key --cert tls.crt

mkdir /opt/https

映射

访问测试

负载均衡测试

可以实现轮询:

浏览器访问:

Nginx如何实现的登录账户认证:

生成auth认证

创建通用加密模版

创建一个新的ingress配置文件,让其是需要认证的

映射

浏览器访问

演示容器内页面跳转

Nginx的重定向,nginx的重定向

访问测试,实现跳转

Nginx-ingress-controller介绍到此结束

接下来介绍traeflk ingress controller:

Traefik是一个为让部署微服务更加快捷的http的反向代理负载均衡

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

Traefik的部署方式:

Daemonset

Deployment

Daemonset的特点:

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

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

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

Deployment的特点:

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

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

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

Traffic-tye:internal 对内服务

Traffic-type:external 对外服务

两者的区别:

Nginx-ingress:相对较慢

Trafik-ingress:自动更新和重载,更方便

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

Trafik-ingress的并发能力,只有Nginx-ingress的60%

我们基本上用的都是nginx-ingress-controller

今天我们就演示deployment

今日作业:演示daemonset,以及配置更新后自动更新重载

样板文件:

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 (daemonset)

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

下载全部执行

注意执行的先后顺序

查看UI界面:

20.0.0.71::31173

页面会立马生成一个traefik

映射        

访问测试

自动发现:(改变副本数即可,然后去浏览器查看)

页面查看

Ingress总结:

Nginx-ingress-controller

Deployment+loadbalancer:公有云负载均衡的公网复制

Daemonset+hostnetwork+nodeselector:和节点服务共享网络,一个节点一个controller pod,使用宿主机的端口性能最好,适合大并发

Deployment+NodePort:最常见得,最常用,简单的方法,但是性能不太好,多了一层NAT地址转发

Traefik-ingress-controller:

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

Deployment:对内,无法自动更新配置

https:

  1. 生成证书,密钥
  2. 创建secret,报存证书和密钥
  3. 创建ingress把secret导入

加密方式:

  1. htpasswd -c auth 认证文件只能是auth
  2. 创建ingress

主要命令:

重定向:

在ingrss文件当中声明的url都会跳转到这个地址

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值