Kubernetes使用入口配置https集群(十五)

  (TOC)

  

一、背景

  

1.1需求

  

我们有这样的一个需求,就是把豆荚集群升级为https,目前的办法就是要么每个容器配置https,然后前端通过服务进行调度,但是这样配置起来会比较麻烦,以及每个容器的建立都通过https,也增加了建立连接的负担。

  

我们需要一种这样的改造,就是客户端连接到服务是通过https,而服务向后端Pod的调度通过http,这样可以极大的优化我们的集群,这里我们就需要用到Kubernetes的另外一种资源入口。

  

 Kubernetes使用入口配置https集群(十五)

  

1.2入口

  

入口就是一个负载均衡的应用,它和服务的不同之处在于,服务只可以支持4层的负载均衡,而入口是支持7层的负载均衡,支持http和https,包括通过主机名的访问已经路径访问的过滤。

  

那为什么不直接使用Nginx ?这是因为在k8集群中,如果每加入一个服务,我们都在Nginx中添加一个配置,其实是一个重复性的体力活,只要是重复性的体力活,我们都应该通过技术将它干掉。

  

入口就可以解决上面的问题,其包含两个组件<代码>入口控制器和<代码>入口:

  
      <李> <强>入口:将Nginx的配置抽象成一个入口对象,每添加一个新的服务只需写一个新的入口的yaml文件即可,李   <李> <强>入口控制器:将新加入的入口转化成Nginx的配置文件并使之生效,包含轮廓,F5, HAProxy, Istio,香港,Nginx, Traefik,官方推荐我们使用Nginx。   
  

 Kubernetes使用入口配置https集群(十五)

  

1.3环境介绍

  

我们是采用了三台服务器的一个集群,部署文档请查看我之前的博文。

           知识产权   角色               192.168.1.200   k8s-master         192.168.1.201   k8s-node01         192.168.1.202   k8s-node02            
 <代码> [root@master ~] # kubectl得到节点
  姓名身份角色年龄版本
  主人主人117年代v1.13.0做好了准备
  node01准备& lt; none>52年代v1.13.0
  node02准备& lt; none>42年代v1.13.0  
  

二、安装部署

  

我们这里只针对上面架构图中的域名www.wzlinux.com <代码> 改造成https。

  

我们将以官方的标准脚本为基础进行搭建,参考请戳官方文档。官方文档中要求执行如下命令:

  
 <代码> kubectl应用- f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml  
  

2.1,创建后端舱应用

  

我们创建一个控制器<代码> wzlinux-deploy.yaml>   

 <代码> apiVersion:扩展/v1beta1
  :部署
  元数据:
  名称:wzlinux-dep
  规范:
  副本:3
  模板:
  元数据:
  标签:
  运行:wzlinux
  规范:
  容器:
  ——名称:wzlinux
  图片:wangzan18/mytest: v1
  港口:
  - containerPort: 8080  
  

创建好之后查看如下:

  
 <代码> [root@master入口)# kubectl吊舱
  重启名字就绪状态的年龄
  wzlinux -大- 78 d5d86c7c fj8f5 1/1运行0 53米
  wzlinux -大- 78 d5d86c7c hr6gd 1/1运行0 53米
  wzlinux -大- 78 d5d86c7c jqf59 1/1运行0 53 m  
  

2.2创建后端Pod服务

  

测试好豆荚一些正常之后,我们为这一组群创建一个服务,文件<代码> wzlinux-svc.yaml>   

 <代码> apiVersion: v1
  类型:服务
  元数据:
  名称:wzlinux-svc
  规范:
  选择器:
  运行:wzlinux
  港口:
  端口:80
  发送:8080  
  

这个服务并不是我们用了代理访问Pod的,只是用来<代码> ingress-controller>   

 <代码> [root@master入口)# kubectl svc
  名字类型集群ip外部ip端口(年代)
  kubernetes ClusterIP 10.96.0.1 & lt; none>443/TCP 58米
  wzlinux-svc ClusterIP 10.106.219.230 & lt; none>8080/TCP 50米
  [root@master入口)# 10.106.219.230:8080旋度
  你好Kubernetes训练营!|运行alt=" Kubernetes使用入口配置https集群(十五)"> 

  

 Kubernetes使用入口配置https集群(十五)

Kubernetes使用入口配置https集群(十五)