rancher学习:rancher组成

一、rancher服务器架构
  1. 为了获得最佳性能和安全性,我们建议为Rancher管理服务器使用专用的Kubernetes群集。不建议在此群集上运行用户工作负载。部署Rancher之后,您可以创建或导入用于运行工作负载的群集
  2. Docker安装可用于开发和测试目的;没有从单节点到高可用性安装的迁移方案(建议一开始就使用kubernetes安装)
  3. Rancher服务器都应始终在与其管理的下游用户群集分离的节点上运行。如果Rancher安装在高可用性Kubernetes群集上,则应在与其管理的群集不同的群集上运行
  4. 如何通过Rancher的身份验证代理来操纵Rancher启动的Kubernetes集群和托管的Kubernetes集群
 
二、与下游用户集群通信
  1. 身份验证代理
    1)默认情况下,Rancher会生成一个kubeconfig文件,其中包含用于通过Rancher服务器进行代理以连接到下游用户群集上的Kubernetes API服务器的凭据。kubeconfig文件(kube_config_rancher-cluster.yml)包含对集群的完全访问权限
    2)身份验证代理将所有Kubernetes API调用转发到下游集群。它与本地身份验证,Active Directory和GitHub等身份验证服务集成。在每个Kubernetes API调用上,身份验证代理都会对调用方进行身份验证并设置适当的Kubernetes模拟标头,然后再将调用转发给Kubernetes主节点
  2. 集群控制器和集群代理
    cluster Controller:
    1)监视下游集群中的资源更改
    2)使下游集群的当前状态达到所需状态
    3)为群集和项目配置访问控制策略
    4)通过调用所需的Docker机器驱动程序和Kubernetes引擎(例如RKE和GKE)来配置群集
    cluster agent:
    1)连接到Rancher启动的Kubernetes集群的Kubernetes API
    2)管理每个集群中的工作负载,pod创建和部署
    3)应用每个集群的全局策略中定义的角色和绑定
    4)在集群和Rancher服务器之间(通过通往集群控制器的隧道)进行通信,以了解事件,统计信息,节点信息和运行状况
    注意:默认集群控制器将连接到集群代理。如果集群代理不可用,则集群控制器可以改为连接到节点代理
  3. 节点代理
    1)如果群集代理(也称为cattle-cluster-agent)不可用,则其中一个节点代理会创建一个到群集控制器的隧道,以与Rancher通信
    2)节点代理(cattle-node-agent)使用daemonset部署,以确认在集群的每个节点都有部署
  4. 授权集群端点
    1)授权的集群端点允许用户连接到下游集群的Kubernetes API服务器,而不必通过Rancher身份验证代理路由其请求(注意:授权的集群端点仅适用于Rancher启动的Kubernetes集群。换句话说,它仅在Rancher 使用RKE设置群集的群集中有效。它不适用于导入的群集或托管的Kubernetes提供程序中的群集)
    授权的使用场景:
    1)在Rancher关闭时访问下游用户集群
    2)在Rancher服务器和下游群集相距较远的情况下减少延迟
    3)kube-api-auth微服务用于提供授权集群端点用户认证功能
    4)创建授权认证时会在kubeconfig文件生成一个额外的上下文(生产中建议导出该文件,一边在rancher故障时可以使用此文件进行访问:该文件是在rancher管理节点或者说对应的下游节点?待确认)
       
三、重要文档
集群进行升级或故障排除时需要以下文件来维护
  • rancher-cluster.yml:RKE集群配置文件。
  • kube_config_rancher-cluster.yml:集群的Kubeconfig文件,此文件包含用于完全访问集群的凭据。如果Rancher出现故障,您可以使用此文件对Rancher启动的Kubernetes集群进行身份验证
  • rancher-cluster.rkestate:Kubernetes集群状态文件。该文件包含用于完全访问群集的凭据。注意:仅在使用RKE v0.2.0或更高版本时创建此状态文件
 
posted @ 2020-04-01 21:43  jayce9102  阅读(199)  评论(0编辑  收藏