Kubernetes实战:构建生产级应用平台
上QQ阅读APP看书,第一时间看更新

2.6 容器化组件

用于启动集群的静态声明文件应包括控制平面的基本组件:etcd、kube-apiserver、kube-scheduler和kube-controller-manager。你也可以根据需要提供额外的自定义Pod声明文件,但它需要被严格限制在Kubernetes API可用或注册到联邦系统之前,除非以后可以通过API服务器的方式安装工作负载。任何使用静态声明文件创建的Pod都只能通过编辑机器磁盘上的那些静态声明文件来管理,它的易访问性和自动化程度要低很多。

如果使用kubeadm(强烈推荐),控制平面的静态声明文件(包括etcd)都将在控制平面节点用kubeadm init初始化时创建。你对这些组件需要的任何规格参数都可以通过kubeadm配置文件传递给kubeadm。例如,我们在上一节讨论的调用kubeadm的引导工具可以编写一个模板化的kubeadm配置文件。

避免直接用你的引导工具定制静态Pod声明文件。如果一定要这样做,你可以用kubeadm执行单独的静态声明文件来创建和初始化集群,这样你就有机会在需要时注入自定义参数,但只有当它很重要并且无法通过kubeadm配置实现时才会这样做。一个更简单的Kubernetes控制平面的引导将更稳健、快速,而且随着Kubernetes版本的升级,发生故障的可能性会小得多。

kubeadm还将生成自签的TLS资源,这些资源需要安全地连接你控制平面的组件(再次强调,要避免在这方面修修补补)。如果你有安全要求,需要使用你企业的CA作为信任源,那么你可以这样做。并且要记住,如果你的集群启动系统是安全的,那么控制平面使用的自签名CA的信任将是安全的,并且只对单个集群的控制平面有效。

现在我们已经介绍了安装Kubernetes的核心内容,让我们深入探讨当你有一个运行中的集群时会出现的问题。首先,我们将讨论在Kubernetes上安装基本附加组件的方法。这些附加组件构成了你需要在Kubernetes之外拥有的组件,依靠它们来提供一个生产就绪的应用平台。然后,我们将讨论对平台进行升级的问题和策略。