云计算
1.概观
为了使入口资源工作,Kubernetes集群中必须至少运行一个入口控制器组件。也就是说,如果kubernetes集群中没有ingress控制器组件,只定义了ingress资源,就无法实现http和https协议的请求转发和负载均衡等功能。常见的入口控制器组件如下:
Nginx
特拉菲克
孔(姓)
伊斯迪奥
HAProxy
以上组件目前没有详细的对比,以后可以在了解和使用各个组件的基础上给出一些详细的对比信息。本文将主要介绍traefik组件的安装和部署,并通过一个具体的应用进行演示。
2.Traefik组件的安装和部署
2.1通过舵图部署traefik
helm traefik图表包包含部署traefik组件所需的资源。我们可以通过使用该组件快速部署traefik组件。以下是部署命令行信息:
cmd线
helm install-name inner-trae fik-namespace kube-system \ \ \ \
-set image=registry . docker . hanker cloud . com/ingress-controller/traefik \ \ \ \
- set serviceType=NodePort \\\\
稳定/traefik
部署完成后,执行命令kubectl get Pods -n kube-system,可以看到一个名为inner-traefik的pod已经存在于kube-system的名称空间中。
2.2 RBAC配置
在Kubernetes的1.6版本中,引入了RBAC(基于角色的访问控制)机制来更好地管理资源和API的访问。如果在集群中配置了RBAC,则需要授权Treafik使用Kubernetes的API。有两种方法可以设置适当的策略:通过特定命名空间的RoleBinding和ClusterRoleBinding。为了简单起见,我们直接使用ClusterRoleBinding,资源定义如下:
-
种类:集群角色
API版本:rbac.authorization.k8s.io/v1beta1
元数据:
名称:traefik-ingress-控制器
规则:
-API group:
-
资源:
-服务
-端点
秘密
动词:
-去吧
-列表
-看着
-API group:
-扩展
资源:
-入口
动词:
-去吧
-列表
-看着
-
种类:ClusterRoleBinding
API版本:rbac.authorization.k8s.io/v1beta1
元数据:
名称:traefik-ingress-控制器
roleRef:
API group:RBAC . authorization . k8s . io
种类:集群角色
名称:traefik-ingress-控制器
主题:
-种类:服务帐户
名称:traefik-ingress-控制器
名称空间:kube-system
-
apiVersion: v1
种类:服务帐户
元数据:
名称:traefik-ingress-控制器
名称空间:kube-system
接下来,我们执行以下命令来创建资源并修改部署的资源定义文件。
kubectl apply -f traefik-rbac.yml
kubectl编辑部署内部traefik -n kube-system
完成上述操作后,我们可以验证相关资源已经正常启动。
kube CTL logs $(kube CTL get pods-n kube-system | grep traefik | awk \ \ \ ' { print $ 1 } \ \ \ ')-n kube-system
2.3负载平衡配置
由于我们使用的是Deployment部署的traefik组件,其服务类型为NodePort,所以可以通过ku bectl getsvc-nkube-system | grep trae fik看到端口映射关系。接下来我们在阿里云申请一个负载均衡的设备,做好相应的配置后再完成这一步。
另一个替代方案是通过DaemonSet的方式部署traefik组件,设置主机端口和Pod实例端口的映射关系,也可以完成这个任务。
3.创建入口资源并调试它。
接下来,我们在kubernetes集群中创建一个入口资源。因为我们之前已经在集群中部署了一个wordpress应用程序,所以资源定义文件如下:
apiVersion:扩展/v1beta1
种类:入口
元数据:
名称:入口
命名空间:默认
注释:
nginx.ingress.kubernetes.io/rewrite-target:/
规格:
规则:
主持人:blog.hankercloud.com
http:
路径:
-路径:/
后端:
服务名称:测试
服务端口:80
完成以上操作后,我们在本地修改/etc/hosts文件,手动配置blog.hankercloud.com的域名解析记录,在浏览器地址栏输入http://blog.hankercloud.com就可以看到页面。至此,我们已经完成了traefik组件的安装、部署和调试。
4.参考文件:
https://docs.traefik.io/v1.5/user-guide/kubernetes/
https://kubernetes . io/docs/concepts/services-网络/入口/
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。