kubeadm 专题 一 init 究竟干了些啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubeadm 专题 一 init 究竟干了些啥相关的知识,希望对你有一定的参考价值。

参考技术A

kubeadm 已经GA , 作为官方的集群安装工具,准备写一个专题,大致分为5 部分,内容会比较多。

kubeadm 属于第二层,用于管理集群。

命令用法

参数说明

kubeadm init通过执行以下步骤来引导Kubernetes控制平面节点:

kubelet 使用4个文件的方式如下

如果未提供外部etcd,则会为etcd生成其他静态Pod清单。 Static Pod清单写入 /etc/kubernetes/manifests ; kubelet监视此目录以便Pods在启动时创建。

control plane 的pod 启动后,init 开始继续执行后面的流程。

通过 API server 安装 DNS 服务器 (CoreDNS) 和 kube-proxy 组件。在 Kubernetes 版本 1.11 和更高版本中,CoreDNS 是默认 DNS 服务器。要安装 kube-dns 而不是 CoreDNS,必须在 kubeadm 配置文件的ClusterConfiguration 字段中配置 DNS 附加组件(通过 kubeadm config 文件)。请注意,虽然已部署 DNS 服务器,但安装 CNI 前该POD 不会被调度到节点(可以理解为不回被实际部署,或不会生效)。

查看 kubeadm config print的帮助

打印默认的init 配置文件

打开 initconfig, 内容如下

上面的内容只包含额了最简话的InitConfiguration type 的内容,kubeadm 完整的内容包含5大部分,如下,每个type 之间,需要用yaml的 --- 文档隔离进行分离。
init-full-config.yaml 文件结构

想细的内容可以参阅 kubeadm api ,kube-proxy配置部分的内容细节在这里 KubeProxyConfiguration
比如我要修改kube-proxy的模式为IPVS 那么修改后的init-full-config.yaml 内容为如下

关于如何通过kubeadm 配置启用 IPVS 请 参阅
关于如何定制化 control plane 请 参阅

对于google 提供的镜像,在众所周知的原因下,无法访问。所以需要使用国内镜像或者自建的镜像仓库。 kubeadm 提供了参数,同事也支持修改 kubeadm config 文件来指定定制化的仓库

通过如下命令,可以查看和拉取 init 所需的镜像。

kubelet 默认使用 docker 作为runtime 并使用内建的 dockershim 进行交互。
其他的runtime包括:

安装文档 CRI installation instructions

根据安装文档安装好runtime后,需要对kubeadm 和kubelet 做如下配置

你也可以通过kubeadm init/reset 的 --cri-socket 参数来是先同样的事情。

与其像 kubeadm 基础教程 中那样,将从 kubeadm init 获得的令牌复制到每个节点,不如并行化令牌分发,以便更轻松地实现自动化。要实现此自动化,您必须知道控制平面节点在启动后将具有的 IP 地址。

步骤

集群启动之后,可以通过 /etc/kubernetes/admin.conf 中的凭证来和集群通信。

参考资料
Automated High Availability in kubeadm v1.15: Batteries Included But Swappable

php.ini 干了些啥?

  今天又重新看了一遍php.ini 的各种配置介绍,感觉还是官网说的比较靠谱,朋友,你所要找的,都在这里了。

  

http://www.php.net/manual/zh/ini.core.php

 

以上是关于kubeadm 专题 一 init 究竟干了些啥的主要内容,如果未能解决你的问题,请参考以下文章

swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?

js new的时候干了些啥?

js new的时候干了些啥?

最近好忙哈,一个多月没更新了,总结下这个月都干了些啥

Asp.net core mapcontrollers 背后干了些啥

记录一下从9.25-10.19出发去沈阳区域赛前俺都干了些啥