二、关键流程代码走读( 四 )


第?个是让服务证书为DNS名称签名,?个是给etcd服务证书为DNS名称签名,这?则是使?的是SAN的机制 。SAN(Name) 是 SSL 标准 x509 中定义的?个扩展 。使?了 SAN 字段的 SSL 证书,可以扩展此证书?持的域名,使得?个证书可以?持多个不同域名的解析 。
2.1.5 生成配置文件
在/etc/这四个?件是如何?成的?
这个地?就是使?的下?的核?代码实现的,具体?作流程如下:
将?件写? /etc// ?录以便 、-和?来连接到 API 服务器,它们每?个都有??的身份标识,同时?成?个名为 admin.conf 的独?的?件,?于管理操作 。
"[kubeconfig] Using kubeconfig folder \"/etc/kubernetes\"","[kubeconfig] Writing \"admin.conf\" kubeconfig file","[kubeconfig] Writing \"kubelet.conf\" kubeconfig file","[kubeconfig] Writing \"controller-manager.conf\" kubeconfig file","[kubeconfig] Writing \"scheduler.conf\" kubeconfig file"
根据?志的输出,我们可以跟踪源码的位置,同样的可以看出还是使?的cobra库的?式
2.1.6写入ENV
1 "[kubelet-start] Writing kubelet environment file with flags to file \"/var/lib/kubelet/kubeadm-flags.env\""2 "[kubelet-start] Writing kubelet configuration to file \"/var/lib/kubelet/config.yaml\""3 "[kubelet-start] Starting the kubelet"
这个地?主要做了以下?件事
将env的变量写?到/var/lib//-flags.env
并将配置配置写?到/var/lib//.yaml
然后启动
2.1.7生成三个静态文件
"[control-plane] Using manifest folder \"/etc/kubernetes/manifests\"","[control-plane] Creating static Pod manifest for \"kube-apiserver\"","[control-plane] Creating static Pod manifest for \"kube-controller-manager\"","[control-plane] Creating static Pod manifest for \"kube-scheduler\"",
根据?志打印的输出?乎我们也可以看出是为控制节点的组建创建静态pod的?录以及?成静态pod放置在/etc//下?
2.1.8生成ETC静态文件
"[etcd] Creating static Pod manifest for local etcd in \"/etc/kubernetes/manifests\"",
下?这个也就?较简单?些了,跟随上?的步骤创建静态pod清单之后,还会做下?的操作,假使没有提供?个外部的 etcd 服务的话,也会为 etcd ?成?份额外的静态 Pod 清单?件 。
判断是否提供外部etcd
2.1.9 hase 等待POD运行
会监视这个/etc//?录以便在系统启动的时候创建 Pod 。
?旦控制平?的 Pod 都运?起来,init 的?作流程就继续往下执? 。
"[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods
2.2reset 2.3join