秋天凉了 發表於 2020-1-12 02:09:00

002.使用kubeadm安装kubernetes 1.17.0

<h2>一 环境准备</h2>
<h3>1.1 环境说明</h3>
<p>master&nbsp; &nbsp; &nbsp; 192.168.132.131&nbsp; &nbsp; &nbsp; docker-server1</p>
<p>node1&nbsp; &nbsp; &nbsp; &nbsp;192.168.132.132&nbsp; &nbsp; &nbsp; docker-server2</p>
<p>node2&nbsp; &nbsp; &nbsp; &nbsp;192.168.132.133&nbsp; &nbsp; &nbsp; docker-server3</p>
<h3>1.2 docker版本</h3>
<p># docker version</p>
<div class="cnblogs_code">
<pre>Client: Docker Engine -<span style="color: rgba(0, 0, 0, 1)"> Community
Version:         </span><span style="color: rgba(128, 0, 128, 1)">19.03</span>.<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
API version:       </span><span style="color: rgba(128, 0, 128, 1)">1.40</span><span style="color: rgba(0, 0, 0, 1)">
Go version:      go1.</span><span style="color: rgba(128, 0, 128, 1)">12.12</span><span style="color: rgba(0, 0, 0, 1)">
Git commit:      633a0ea
Built:             Wed Nov </span><span style="color: rgba(128, 0, 128, 1)">13</span> <span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">25</span>:<span style="color: rgba(128, 0, 128, 1)">41</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)">
OS</span>/Arch:         linux/<span style="color: rgba(0, 0, 0, 1)">amd64
Experimental:      </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">

Server: Docker Engine </span>-<span style="color: rgba(0, 0, 0, 1)"> Community
Engine:
Version:          </span><span style="color: rgba(128, 0, 128, 1)">19.03</span>.<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
API version:      </span><span style="color: rgba(128, 0, 128, 1)">1.40</span> (minimum version <span style="color: rgba(128, 0, 128, 1)">1.12</span><span style="color: rgba(0, 0, 0, 1)">)
Go version:       go1.</span><span style="color: rgba(128, 0, 128, 1)">12.12</span><span style="color: rgba(0, 0, 0, 1)">
Git commit:       633a0ea
Built:            Wed Nov </span><span style="color: rgba(128, 0, 128, 1)">13</span> <span style="color: rgba(128, 0, 128, 1)">07</span>:<span style="color: rgba(128, 0, 128, 1)">24</span>:<span style="color: rgba(128, 0, 128, 1)">18</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)">
OS</span>/Arch:          linux/<span style="color: rgba(0, 0, 0, 1)">amd64
Experimental:   </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
containerd:
Version:          </span><span style="color: rgba(128, 0, 128, 1)">1.2</span>.<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">
GitCommit:      b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version:          </span><span style="color: rgba(128, 0, 128, 1)">1.0</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-rc8+<span style="color: rgba(0, 0, 0, 1)">dev
GitCommit:      3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker</span>-<span style="color: rgba(0, 0, 0, 1)">init:
Version:          </span><span style="color: rgba(128, 0, 128, 1)">0.18</span>.<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
GitCommit:      fec3683</span></pre>
</div>
<p>关闭selinxu,防火墙</p>
<h3>1.3 相关组件版本说明</h3>
<table>
<thead>
<tr class="header"><th>组件</th><th>版本</th><th>说明</th></tr>
</thead>
<tbody>
<tr class="odd">
<td>kubernetes</td>
<td>1.16.2</td>
<td>主程序</td>
</tr>
<tr class="even">
<td>docker</td>
<td>19.03.3</td>
<td>容器</td>
</tr>
<tr class="odd">
<td>flannel</td>
<td>0.11.0</td>
<td>网络插件</td>
</tr>
<tr class="even">
<td>etcd</td>
<td>3.3.15</td>
<td>数据库</td>
</tr>
<tr class="odd">
<td>coredns</td>
<td>1.6.2</td>
<td>dns组件</td>
</tr>
<tr class="even">
<td>kubernetes-dashboard</td>
<td>2.0.0-beta5</td>
<td>web界面</td>
</tr>
<tr class="odd">
<td>ingress-nginx</td>
<td>0.26.1</td>
<td>ingress</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h2>二&nbsp; 安装kubernetes 1.17.0</h2>
<h3>2.1 组件</h3>
<p>三个节点都需要安装下面三个组件</p>
<p>kubeadm:安装工具,安装后,所有的组件都会以容器的方式运行</p>
<p>kubectl:是一个客户端&nbsp; &nbsp;</p>
<p>kubelet:运行在node节点,用来启动容器的工具</p>
<p>使用yum安装,使用阿里云的yum源https://developer.aliyun.com/mirror</p>
<p>https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.53322f705Hg6zu</p>
<h3>2.2 配置yum源</h3>
<p>根据文档,给三台机器配置yum源,安装</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">cat</span> &lt;&lt;EOF &gt; /etc/<span style="color: rgba(0, 0, 255, 1)">yum</span>.repos.d/<span style="color: rgba(0, 0, 0, 1)">kubernetes.repo

name</span>=<span style="color: rgba(0, 0, 0, 1)">Kubernetes
baseurl</span>=https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/</span>
enabled=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
gpgcheck</span>=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
repo_gpgcheck</span>=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
gpgkey</span>=https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg </span><span style="color: rgba(0, 128, 0, 1); text-decoration: underline">https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg</span>
<span style="color: rgba(0, 0, 0, 1)">EOF<br></span></pre>
</div>
<p># yum info kubeadm</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
</span>*<span style="color: rgba(0, 0, 0, 1)"> base: mirror.hostlink.com.hk
</span>*<span style="color: rgba(0, 0, 0, 1)"> epel: my.fedora.ipserverone.com
</span>*<span style="color: rgba(0, 0, 0, 1)"> extras: mirror.hostlink.com.hk
</span>*<span style="color: rgba(0, 0, 0, 1)"> updates: hk.mirrors.thegigabit.com
Available Packages
Name      : kubeadm
Arch      : x86_64
Version   : </span><span style="color: rgba(128, 0, 128, 1)">1.17</span>.<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Release   : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Size      : </span><span style="color: rgba(128, 0, 128, 1)">8.7</span><span style="color: rgba(0, 0, 0, 1)"> M
Repo      : kubernetes
Summary   : Command</span>-line utility <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> administering a Kubernetes cluster.
URL         : https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io</span>
License   : ASL <span style="color: rgba(128, 0, 128, 1)">2.0</span><span style="color: rgba(0, 0, 0, 1)">
Description : Command</span>-line utility <span style="color: rgba(0, 0, 255, 1)">for</span> administering a Kubernetes cluster.</pre>
</div>
<p>目前最新版本是1.17</p>
<h3>2.3 安装</h3>
<p># yum install -y kubelet kubeadm kubectl</p>
<p># yum install -y kubelet kubeadm kubectl</p>
<p># yum install -y kubelet kubeadm kubectl</p>
<p># rpm -aq|grep kube</p>
<div class="cnblogs_code">
<pre>kubeadm-<span style="color: rgba(128, 0, 128, 1)">1.17</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.x86_64
kubernetes</span>-cni-<span style="color: rgba(128, 0, 128, 1)">0.7</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>-<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.x86_64
kubectl</span>-<span style="color: rgba(128, 0, 128, 1)">1.17</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.x86_64
kubelet</span>-<span style="color: rgba(128, 0, 128, 1)">1.17</span>.<span style="color: rgba(128, 0, 128, 1)">0</span>-<span style="color: rgba(128, 0, 128, 1)">0</span>.x86_64</pre>
</div>
<p>#&nbsp; systemctl enable kubelet &amp;&amp; systemctl start kubelet</p>
<p>#&nbsp; systemctl enable kubelet &amp;&amp; systemctl start kubelet</p>
<p>#&nbsp; systemctl enable kubelet &amp;&amp; systemctl start kubelet</p>
<h3>2.4 加载内核模块</h3>
<p>所有节点操作</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">cat</span> &gt; /etc/sysconfig/modules/ipvs.modules &lt;&lt;<span style="color: rgba(0, 0, 0, 1)">EOF
#</span>!/bin/<span style="color: rgba(0, 0, 0, 1)">bash
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> br_netfilter
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> ip_vs
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> ip_vs_rr
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> ip_vs_wrr
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> ip_vs_sh
</span><span style="color: rgba(0, 0, 255, 1)">modprobe</span> --<span style="color: rgba(0, 0, 0, 1)"> nf_conntrack_ipv4
EOF

</span><span style="color: rgba(0, 0, 255, 1)">chmod</span> <span style="color: rgba(128, 0, 128, 1)">755</span> /etc/sysconfig/modules/ipvs.modules &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> \
bash </span>/etc/sysconfig/modules/ipvs.modules &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> \
</span><span style="color: rgba(0, 0, 255, 1)">lsmod</span> | <span style="color: rgba(0, 0, 255, 1)">grep</span> -E <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ip_vs|nf_conntrack_ipv4</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p>输出结果</p>
<div class="cnblogs_code">
<pre>ip_vs_sh               <span style="color: rgba(128, 0, 128, 1)">12688</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
ip_vs_wrr            </span><span style="color: rgba(128, 0, 128, 1)">12697</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
ip_vs_rr               </span><span style="color: rgba(128, 0, 128, 1)">12600</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
ip_vs               </span><span style="color: rgba(128, 0, 128, 1)">145497</span><span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)"> ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack_ipv4      </span><span style="color: rgba(128, 0, 128, 1)">15053</span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
nf_defrag_ipv4         </span><span style="color: rgba(128, 0, 128, 1)">12729</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> nf_conntrack_ipv4
nf_conntrack          </span><span style="color: rgba(128, 0, 128, 1)">139224</span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)"> ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4
libcrc32c            </span><span style="color: rgba(128, 0, 128, 1)">12644</span><span style="color: rgba(128, 0, 128, 1)">4</span> xfs,ip_vs,nf_nat,nf_conntrack</pre>
</div>
<h3 id="配置kubeadm-config.yaml">2.5 配置kubeadm-config.yaml</h3>
<p>kubeadm-config.yaml组成部署说明:</p>
<ul>
<li>InitConfiguration: 用于定义一些初始化配置,如初始化使用的token以及apiserver地址等</li>
<li>ClusterConfiguration:用于定义apiserver、etcd、network、scheduler、controller-manager等master组件相关配置项</li>
<li>KubeletConfiguration:用于定义kubelet组件相关的配置项</li>
<li>KubeProxyConfiguration:用于定义kube-proxy组件相关的配置项</li>
</ul>
<p>在master节点安装,master定于为192.168.132.131,通过如下指令创建默认的kubeadm-config.yaml文件:</p>
<p>#&nbsp; &nbsp;kubeadm config print init-defaults&nbsp; &gt; kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">47</span>:<span style="color: rgba(128, 0, 128, 1)">10.868273</span>    <span style="color: rgba(128, 0, 128, 1)">8650</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kube-proxy config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
W0109 </span><span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">47</span>:<span style="color: rgba(128, 0, 128, 1)">10.868611</span>    <span style="color: rgba(128, 0, 128, 1)">8650</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kubelet config - no validator is available</pre>
</div>
<p>kubeadm-config.yaml配置</p>
<p># vim&nbsp; kubeadm-config.yam</p>
<div class="cnblogs_code">
<pre>apiVersion: kubeadm.k8s.io/<span style="color: rgba(0, 0, 0, 1)">v1beta2
bootstrapTokens:
</span>- <span style="color: rgba(0, 0, 255, 1)">groups</span><span style="color: rgba(0, 0, 0, 1)">:
</span>- system:bootstrappers:kubeadm:default-node-<span style="color: rgba(0, 0, 0, 1)">token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
</span>-<span style="color: rgba(0, 0, 0, 1)"> signing
</span>-<span style="color: rgba(0, 0, 0, 1)"> authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.132.131       #master节点的IP</span><span style="color: rgba(0, 0, 0, 1)">
bindPort: </span><span style="color: rgba(128, 0, 128, 1)">6443</span><span style="color: rgba(0, 0, 0, 1)">
nodeRegistration:
criSocket: </span>/var/run/<span style="color: rgba(0, 0, 0, 1)">dockershim.sock
name: 192.168.132.131                   #这里修改为IP地址,使用域名,必须保证解析</span><span style="color: rgba(0, 0, 0, 1)">
taints:
</span>-<span style="color: rgba(0, 0, 0, 1)"> effect: NoSchedule
    key: node</span>-role.kubernetes.io/<span style="color: rgba(0, 0, 0, 1)">master
</span>---<span style="color: rgba(0, 0, 0, 1)">
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io</span>/<span style="color: rgba(0, 0, 0, 1)">v1beta2
certificatesDir: </span>/etc/kubernetes/<span style="color: rgba(0, 0, 0, 1)">pki
clusterName: kubernetes
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
    dataDir: </span>/var/lib/<span style="color: rgba(0, 0, 0, 1)">etcd      #把etcd容器的目录挂载到本地的/var/lib/etcd目录下,防止数据丢失
imageRepository: k8s.gcr.io   #镜像仓库地址,在国内的话,可以修改为gcr.azk8s.cn/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.</span><span style="color: rgba(128, 0, 128, 1)">17.0      #k8s版本</span><span style="color: rgba(0, 0, 0, 1)">
networking:
dnsDomain: cluster.local
serviceSubnet: </span><span style="color: rgba(128, 0, 128, 1)">10.96</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>/<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">
scheduler: {}</span></pre>
</div>
<h3>2.6&nbsp; 部署master</h3>
<p>安装matser节点</p>
<p># kubeadm init --config kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">50.984638</span>   <span style="color: rgba(128, 0, 128, 1)">10134</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kube-proxy config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">00</span>:<span style="color: rgba(128, 0, 128, 1)">50.984791</span>   <span style="color: rgba(128, 0, 128, 1)">10134</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kubelet config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
Using Kubernetes version: v1.</span><span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : docker service is not enabled, please run <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">systemctl enable docker.service</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
<span style="color: rgba(0, 0, 0, 1)">error execution phase preflight: Some fatal errors occurred:
    : running with swap on is not supported. Please disable swap
    : /var/lib/<span style="color: rgba(0, 0, 0, 1)">etcd is not empty
If you know what you are doing, you can </span><span style="color: rgba(0, 0, 255, 1)">make</span> a check non-fatal with `--ignore-preflight-errors=<span style="color: rgba(0, 0, 0, 1)">...`
To see the stack trace of this error execute with </span>--v=<span style="color: rgba(128, 0, 128, 1)">5</span> or higher</pre>
</div>
<p>是在学习docker安装的etcd,删除这个文件</p>
<p># rm -rf /var/lib/etcd/</p>
<p># kubeadm init --config kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">01</span>:<span style="color: rgba(128, 0, 128, 1)">13.214429</span>   <span style="color: rgba(128, 0, 128, 1)">10319</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kube-proxy config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">01</span>:<span style="color: rgba(128, 0, 128, 1)">13.214516</span>   <span style="color: rgba(128, 0, 128, 1)">10319</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kubelet config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
Using Kubernetes version: v1.</span><span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : docker service is not enabled, please run <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">systemctl enable docker.service</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
<span style="color: rgba(0, 0, 0, 1)">error execution phase preflight: Some fatal errors occurred:
    : running with swap on is not supported. Please disable swap
If you know what you are doing, you can </span><span style="color: rgba(0, 0, 255, 1)">make</span> a check non-fatal with `--ignore-preflight-errors=<span style="color: rgba(0, 0, 0, 1)">...`
To see the stack trace of this error execute with </span>--v=<span style="color: rgba(128, 0, 128, 1)">5</span> or higher</pre>
</div>
<p>执行</p>
<p># systemctl enable docker.service</p>
<p>并disable swap</p>
<p># cat /etc/fstab</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">#
# </span>/etc/<span style="color: rgba(0, 0, 0, 1)">fstab
# Created by anaconda on Mon Aug </span><span style="color: rgba(128, 0, 128, 1)">12</span> <span style="color: rgba(128, 0, 128, 1)">10</span>:<span style="color: rgba(128, 0, 128, 1)">34</span>:<span style="color: rgba(128, 0, 128, 1)">55</span> <span style="color: rgba(128, 0, 128, 1)">2019</span><span style="color: rgba(0, 0, 0, 1)">
#
# Accessible filesystems, by reference, are maintained under </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/dev/disk</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
# See </span><span style="color: rgba(0, 0, 255, 1)">man</span> pages fstab(<span style="color: rgba(128, 0, 128, 1)">5</span>), findfs(<span style="color: rgba(128, 0, 128, 1)">8</span>), <span style="color: rgba(0, 0, 255, 1)">mount</span>(<span style="color: rgba(128, 0, 128, 1)">8</span>) and/or blkid(<span style="color: rgba(128, 0, 128, 1)">8</span>) <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(0, 0, 255, 1)">more</span> <span style="color: rgba(0, 0, 255, 1)">info</span><span style="color: rgba(0, 0, 0, 1)">
#
</span>/dev/mapper/centos-root / xfs defaults <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
UUID</span>=e792ce5a-c008-<span style="color: rgba(128, 0, 128, 1)">4849</span>-98d2-dacfa848f2a0 /boot xfs defaults <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
# </span>/dev/mapper/centos-swap swap swap defaults <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">0    #注释这个挂载</span></pre>
</div>
<p># swapoff /dev/mapper/centos-swap<br># free -h</p>
<div class="cnblogs_code">
<pre>total      used      <span style="color: rgba(0, 0, 255, 1)">free</span>      sharedbuff/<span style="color: rgba(0, 0, 0, 1)">cache   available
Mem:         </span><span style="color: rgba(128, 0, 128, 1)">7</span>.6G      273M      <span style="color: rgba(128, 0, 128, 1)">6</span>.3G         11M      <span style="color: rgba(128, 0, 128, 1)">1</span>.0G      <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">.1G
Swap:            0B          0B          0B</span></pre>
</div>
<p># kubeadm init --config kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">45.192524</span>   <span style="color: rgba(128, 0, 128, 1)">11408</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kube-proxy config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">08</span>:<span style="color: rgba(128, 0, 128, 1)">45.192590</span>   <span style="color: rgba(128, 0, 128, 1)">11408</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kubelet config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
Using Kubernetes version: v1.</span><span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
Pulling images required <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> setting up a Kubernetes cluster
This might take a minute or two, depending on the speed of your internet connection
You can also perform this action </span><span style="color: rgba(0, 0, 255, 1)">in</span> beforehand using <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubeadm config images pull</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet environment <span style="color: rgba(0, 0, 255, 1)">file</span> with flags to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/kubeadm-flags.env</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet configuration to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/config.yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Starting the kubelet
Using certificateDir folder </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/pki</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
apiserver serving cert is signed </span><span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [<span style="color: rgba(128, 0, 128, 1)">10.96</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver-kubelet-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">front-proxy-ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">front-proxy-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/server</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
etcd</span>/server serving cert is signed <span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> localhost] and IPs [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> <span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> ::<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/peer</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
etcd</span>/peer serving cert is signed <span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> localhost] and IPs [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> <span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> ::<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/healthcheck-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver-etcd-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sa</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> key and public key
Using kubeconfig folder </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">admin.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">controller-manager.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">scheduler.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Using manifest folder <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-apiserver</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-controller-manager</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">02.496349</span>   <span style="color: rgba(128, 0, 128, 1)">11408</span> manifests.go:<span style="color: rgba(128, 0, 128, 1)">214</span>] the default kube-apiserver authorization-mode is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span>; using <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-scheduler</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">11</span>:<span style="color: rgba(128, 0, 128, 1)">02.497925</span>   <span style="color: rgba(128, 0, 128, 1)">11408</span> manifests.go:<span style="color: rgba(128, 0, 128, 1)">214</span>] the default kube-apiserver authorization-mode is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span>; using <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest </span><span style="color: rgba(0, 0, 255, 1)">for</span> local etcd <span style="color: rgba(0, 0, 255, 1)">in</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
[</span><span style="color: rgba(0, 0, 255, 1)">wait</span>-control-plane] Waiting <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelet to boot up the control plane as static Pods from directory <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">. This can take up to 4m0s
All control plane components are healthy after </span><span style="color: rgba(128, 0, 128, 1)">18.503839</span><span style="color: rgba(0, 0, 0, 1)"> seconds
Storing the configuration used <span style="color: rgba(0, 0, 255, 1)">in</span> ConfigMap <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubeadm-config</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span> the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-system</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> Namespace
Creating a ConfigMap </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet-config-1.17</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span> namespace kube-system with the configuration <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelets <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> the cluster
Skipping phase. Please see --upload-<span style="color: rgba(0, 0, 0, 1)">certs
Marking the node <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> as control-plane by adding the label <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">node-role.kubernetes.io/master=''</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Marking the node <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> as control-plane by adding the taints
Using token: abcdef.0123456789abcdef
Configuring bootstrap tokens, cluster-<span style="color: rgba(0, 0, 255, 1)">info</span><span style="color: rgba(0, 0, 0, 1)"> ConfigMap, RBAC Roles
configured RBAC rules to allow Node Bootstrap tokens to post CSRs <span style="color: rgba(0, 0, 255, 1)">in</span> order <span style="color: rgba(0, 0, 255, 1)">for</span> nodes to get <span style="color: rgba(0, 0, 255, 1)">long</span><span style="color: rgba(0, 0, 0, 1)"> term certificate credentials
configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
configured RBAC rules to allow certificate rotation <span style="color: rgba(0, 0, 255, 1)">for</span> all node client certificates <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> the cluster
Creating the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cluster-info</span><span style="color: rgba(128, 0, 0, 1)">"</span> ConfigMap <span style="color: rgba(0, 0, 255, 1)">in</span> the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-public</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> namespace
Updating <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/kubelet.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> to point to a rotatable kubelet client certificate and key
Applied essential addon: CoreDNS
Applied essential addon: kube</span>-<span style="color: rgba(0, 0, 0, 1)">proxy

Your Kubernetes control</span>-plane has initialized successfully!<span style="color: rgba(0, 0, 0, 1)">

To start using your cluster, you need to run the following as a regular user:    #安装完成,在master上操作

</span><span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p $HOME/<span style="color: rgba(0, 0, 0, 1)">.kube
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">cp</span> -i /etc/kubernetes/admin.conf $HOME/.kube/<span style="color: rgba(0, 0, 0, 1)">config
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">chown</span> $(<span style="color: rgba(0, 0, 255, 1)">id</span> -u):$(<span style="color: rgba(0, 0, 255, 1)">id</span> -g) $HOME/.kube/<span style="color: rgba(0, 0, 0, 1)">config

You should now deploy a pod network to the cluster.
Run </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubectl apply -f .yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> with one of the options listed at:
https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/concepts/cluster-administration/addons/</span>
<span style="color: rgba(0, 0, 0, 1)">
Then you can </span><span style="color: rgba(0, 0, 255, 1)">join</span><span style="color: rgba(0, 0, 0, 1)"> any number of worker nodes by running the following on each as root:

kubeadm </span><span style="color: rgba(0, 0, 255, 1)">join</span> <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>:<span style="color: rgba(128, 0, 128, 1)">6443</span> --<span style="color: rgba(0, 0, 0, 1)">token abcdef.0123456789abcdef \
    </span>--discovery-token-ca-cert-hash sha256:69b08312889f1841d5e451f87485aa2ec39d85fa24ebbf62521b4993bfc782e4   #添加node节点</pre>
</div>
<p>安装完成</p>
<h3>2.7 查看容器</h3>
<p># docker ps -a</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">CONTAINER ID      IMAGE                  COMMAND                  CREATED             STATUS                  PORTS               NAMES
ae8549a82b77      7d54289267dc         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/bin/kube…</span><span style="color: rgba(128, 0, 0, 1)">"</span>   <span style="color: rgba(128, 0, 128, 1)">3</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">3</span> minutes                                  k8s_kube-proxy_kube-proxy-85wct_kube-system_ba75ad88-ad40-48ff-8df3-<span style="color: rgba(0, 0, 0, 1)">b275d5e633b3_0
bd43e8ed43d4      k8s.gcr.io</span>/pause:<span style="color: rgba(128, 0, 128, 1)">3.1</span>   <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/pause</span><span style="color: rgba(128, 0, 0, 1)">"</span>               <span style="color: rgba(128, 0, 128, 1)">3</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">3</span> minutes                                  k8s_POD_kube-proxy-85wct_kube-system_ba75ad88-ad40-48ff-8df3-<span style="color: rgba(0, 0, 0, 1)">b275d5e633b3_0
4251da77267b      78c190f736b1         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-scheduler --au…</span><span style="color: rgba(128, 0, 0, 1)">"</span>   <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_kube-scheduler_kube-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_ff67867321338ffd885039e188f6b424_0
dc0f77b83a11      5eb3b7486872         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-controller-man…</span><span style="color: rgba(128, 0, 0, 1)">"</span>   <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_kube-controller-manager_kube-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_c2005b6581bec7a243719295b4c45211_0
9423af2e2815      303ce5db0e90         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd --advertise-cl…</span><span style="color: rgba(128, 0, 0, 1)">"</span>   <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_etcd_etcd-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_9efa80759e8a266de518d018d831e47c_0
50ad1f661532      0cae8d5cc64c         </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-apiserver --ad…</span><span style="color: rgba(128, 0, 0, 1)">"</span>   <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_kube-apiserver_kube-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_35be3047d357a34596bdda175ae3edd5_0
4e6d45ca5f26      k8s.gcr.io</span>/pause:<span style="color: rgba(128, 0, 128, 1)">3.1</span>   <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/pause</span><span style="color: rgba(128, 0, 0, 1)">"</span>               <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_POD_kube-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_ff67867321338ffd885039e188f6b424_0
a5dbe134219e      k8s.gcr.io</span>/pause:<span style="color: rgba(128, 0, 128, 1)">3.1</span>   <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/pause</span><span style="color: rgba(128, 0, 0, 1)">"</span>               <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_POD_kube-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_c2005b6581bec7a243719295b4c45211_0
f459231c57f0      k8s.gcr.io</span>/pause:<span style="color: rgba(128, 0, 128, 1)">3.1</span>   <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/pause</span><span style="color: rgba(128, 0, 0, 1)">"</span>               <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_POD_kube-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_35be3047d357a34596bdda175ae3edd5_0
46fc5b0bc652      k8s.gcr.io</span>/pause:<span style="color: rgba(128, 0, 128, 1)">3.1</span>   <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/pause</span><span style="color: rgba(128, 0, 0, 1)">"</span>               <span style="color: rgba(128, 0, 128, 1)">4</span> minutes ago       Up <span style="color: rgba(128, 0, 128, 1)">4</span> minutes                                  k8s_POD_etcd-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132</span>.131_kube-<span style="color: rgba(0, 0, 0, 1)">system_9efa80759e8a266de518d018d831e47c_0
73c1d78829a8      busybox                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sh</span><span style="color: rgba(128, 0, 0, 1)">"</span>                     <span style="color: rgba(128, 0, 128, 1)">2</span> months ago      Exited (<span style="color: rgba(128, 0, 128, 1)">0</span>) <span style="color: rgba(128, 0, 128, 1)">2</span> months ago                     relaxed_rosalind</pre>
</div>
<p>根据提示操作</p>
<p># mkdir -p $HOME/.kube</p>
<p># sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config</p>
<p># sudo chown $(id -u):$(id -g) $HOME/.kube/config</p>
<p>现在就安装完成</p>
<p>查看node节点</p>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   NotReady   master   28m   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p># kubectl get pods -n kube-system</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                    READY   STATUS    RESTARTS   AGE
coredns</span>-6955765f44-5x84f                  <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Pending   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
coredns</span>-6955765f44-74z8d                  <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Pending   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
etcd</span>-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>                      <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
kube</span>-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
kube</span>-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
kube</span>-proxy-85wct                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          29m
kube</span>-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span>          29m</pre>
</div>
<p>发现两个问题</p>
<p>1 core节点为pending:是因为需要node节点,但是还没有安装node节点,所以是pending</p>
<p>2 status是notready状态:是因为还没有安装网络插件</p>
<h3>2.8 安装flannel</h3>
<p>https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml</p>
<p># wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml</p>
<p># sed -i 's@quay.io@quay.azk8s.cn@g' kube-flannel.yml</p>
<p># kubectl apply -f kube-flannel.yml</p>
<div class="cnblogs_code">
<pre>podsecuritypolicy.policy/<span style="color: rgba(0, 0, 0, 1)">psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
clusterrolebinding.rbac.authorization.k8s.io</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
serviceaccount</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
configmap</span>/kube-flannel-<span style="color: rgba(0, 0, 0, 1)">cfg created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">amd64 created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">arm64 created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">arm created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">ppc64le created
daemonset.apps</span>/kube-flannel-ds-s390x created</pre>
</div>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   Ready    master   39m   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p>已经是ready状态</p>
<h3>2.9 安装node节点</h3>
<p>根据提示安装node节点</p>
<p># kubeadm join 192.168.132.131:6443 --token abcdef.0123456789abcdef \</p>
<p>--discovery-token-ca-cert-hash sha256:69b08312889f1841d5e451f87485aa2ec39d85fa24ebbf62521b4993bfc782e4</p>
<div class="cnblogs_code">
<pre>&gt;   --discovery-token-ca-cert-<span style="color: rgba(0, 0, 0, 1)">hash sha256:69b08312889f1841d5e451f87485aa2ec39d85fa24ebbf62521b4993bfc782e4
W0109 </span><span style="color: rgba(128, 0, 128, 1)">12</span>:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">20.074145</span>   <span style="color: rgba(128, 0, 128, 1)">17526</span> <span style="color: rgba(0, 0, 255, 1)">join</span>.go:<span style="color: rgba(128, 0, 128, 1)">346</span>] WARNING: JoinControlPane.controlPlane settings will be ignored when control-<span style="color: rgba(0, 0, 0, 1)">plane flag is not set.
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
    : <span style="color: rgba(0, 0, 255, 1)">hostname</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">docker-server2</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> could not be reached
    : </span><span style="color: rgba(0, 0, 255, 1)">hostname</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">docker-server2</span><span style="color: rgba(128, 0, 0, 1)">"</span>: lookup docker-server2 on <span style="color: rgba(128, 0, 128, 1)">8.8</span>.<span style="color: rgba(128, 0, 128, 1)">8.8</span>:<span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">: no such host
Reading configuration from the cluster...
FYI: You can look at this config </span><span style="color: rgba(0, 0, 255, 1)">file</span> with <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubectl -n kube-system get cm kubeadm-config -oyaml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
Downloading configuration <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelet from the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet-config-1.17</span><span style="color: rgba(128, 0, 0, 1)">"</span> ConfigMap <span style="color: rgba(0, 0, 255, 1)">in</span> the kube-<span style="color: rgba(0, 0, 0, 1)">system namespace
Writing kubelet configuration to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/config.yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet environment <span style="color: rgba(0, 0, 255, 1)">file</span> with flags to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/kubeadm-flags.env</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Starting the kubelet
Waiting <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
</span>*<span style="color: rgba(0, 0, 0, 1)"> Certificate signing request was sent to apiserver and a response was received.
</span>*<span style="color: rgba(0, 0, 0, 1)"> The Kubelet was informed of the new secure connection details.

Run </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubectl get nodes</span><span style="color: rgba(128, 0, 0, 1)">'</span> on the control-plane to see this node <span style="color: rgba(0, 0, 255, 1)">join</span> the cluster.</pre>
</div>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   Ready    master   45m   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
docker</span>-server2    Ready    &lt;none&gt;   87s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p>在另一个节点使用另一种方式安装</p>
<p>master节点的token信息</p>
<p># cat kubeadm-config.yaml |grep token</p>
<div class="cnblogs_code">
<pre>- system:bootstrappers:kubeadm:default-node-<span style="color: rgba(0, 0, 0, 1)">token
token: abcdef.0123456789abcdef</span></pre>
</div>
<p># kubeadm config print join-defaults &gt; kubeadm-config.yaml</p>
<p># vi kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>apiVersion: kubeadm.k8s.io/<span style="color: rgba(0, 0, 0, 1)">v1beta2
caCertPath: </span>/etc/kubernetes/pki/<span style="color: rgba(0, 0, 0, 1)">ca.crt
discovery:
bootstrapToken:
    apiServerEndpoint: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>:<span style="color: rgba(128, 0, 128, 1)">6443</span><span style="color: rgba(0, 0, 0, 1)">
    token: abcdef.0123456789abcdef
    unsafeSkipCAVerification: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
timeout: 5m0s
tlsBootstrapToken: abcdef.0123456789abcdef
kind: JoinConfiguration
nodeRegistration:
criSocket: </span>/var/run/<span style="color: rgba(0, 0, 0, 1)">dockershim.sock
name: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.133</span><span style="color: rgba(0, 0, 0, 1)">
taints: </span><span style="color: rgba(0, 0, 255, 1)">null</span></pre>
</div>
<p># kubeadm join --config kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">03</span>:<span style="color: rgba(128, 0, 128, 1)">47.889071</span>   <span style="color: rgba(128, 0, 128, 1)">65148</span> <span style="color: rgba(0, 0, 255, 1)">join</span>.go:<span style="color: rgba(128, 0, 128, 1)">346</span>] WARNING: JoinControlPane.controlPlane settings will be ignored when control-<span style="color: rgba(0, 0, 0, 1)">plane flag is not set.
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
<span style="color: rgba(0, 0, 0, 1)"> Reading configuration from the cluster...
FYI: You can look at this config </span><span style="color: rgba(0, 0, 255, 1)">file</span> with <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubectl -n kube-system get cm kubeadm-config -oyaml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
Downloading configuration <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelet from the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet-config-1.17</span><span style="color: rgba(128, 0, 0, 1)">"</span> ConfigMap <span style="color: rgba(0, 0, 255, 1)">in</span> the kube-<span style="color: rgba(0, 0, 0, 1)">system namespace
Writing kubelet configuration to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/config.yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet environment <span style="color: rgba(0, 0, 255, 1)">file</span> with flags to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/kubeadm-flags.env</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Starting the kubelet
Waiting <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
</span>*<span style="color: rgba(0, 0, 0, 1)"> Certificate signing request was sent to apiserver and a response was received.
</span>*<span style="color: rgba(0, 0, 0, 1)"> The Kubelet was informed of the new secure connection details.

Run </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubectl get nodes</span><span style="color: rgba(128, 0, 0, 1)">'</span> on the control-plane to see this node <span style="color: rgba(0, 0, 255, 1)">join</span> the cluster.</pre>
</div>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   Ready    master   53m   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span>
<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.133</span>   Ready    &lt;none&gt;   53s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
docker</span>-server2    Ready    &lt;none&gt;   9m58s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p># cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf</p>
<div class="cnblogs_code">
<pre># Note: This dropin only works with kubeadm and kubelet v1.<span style="color: rgba(128, 0, 128, 1)">11</span>+<span style="color: rgba(0, 0, 0, 1)">

Environment</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Environment</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
# This is a </span><span style="color: rgba(0, 0, 255, 1)">file</span> that <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubeadm init</span><span style="color: rgba(128, 0, 0, 1)">"</span> and <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubeadm join</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile</span>=-/var/lib/kubelet/kubeadm-flags.<span style="color: rgba(0, 0, 255, 1)">env</span><span style="color: rgba(0, 0, 0, 1)">
# This is a </span><span style="color: rgba(0, 0, 255, 1)">file</span> that the user can use <span style="color: rgba(0, 0, 255, 1)">for</span> overrides of the kubelet args as a <span style="color: rgba(0, 0, 255, 1)">last</span><span style="color: rgba(0, 0, 0, 1)"> resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs </span><span style="color: rgba(0, 0, 255, 1)">object</span> <span style="color: rgba(0, 0, 255, 1)">in</span> the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">.
EnvironmentFile</span>=-/etc/sysconfig/<span style="color: rgba(0, 0, 0, 1)">kubelet
ExecStart</span>=<span style="color: rgba(0, 0, 0, 1)">
ExecStart</span>=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS</pre>
</div>
<p># kubectl get pods -n kube-system</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                    READY   STATUS            RESTARTS   AGE
coredns</span>-6955765f44-5x84f                  <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   ContainerCreating   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
coredns</span>-6955765f44-74z8d                  <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   ContainerCreating   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
etcd</span>-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>                      <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
kube</span>-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
kube</span>-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
kube</span>-flannel-ds-amd64-6f72q               <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   CrashLoopBackOff    <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">          18m
kube</span>-flannel-ds-amd64-ktcw7               <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   CrashLoopBackOff    <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">          9m53s
kube</span>-flannel-ds-amd64-w7dbz               <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   CrashLoopBackOff    <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">          23m
kube</span>-proxy-85wct                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          62m
kube</span>-proxy-8xq2q                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          9m53s
kube</span>-proxy-8zmvf                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          18m
kube</span>-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span>          62m</pre>
</div>
<h2>三&nbsp; 重新安装环境</h2>
<h3>3.1 重置master</h3>
<p># kubeadm reset</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)"> Reading configuration from the cluster...
FYI: You can look at this config </span><span style="color: rgba(0, 0, 255, 1)">file</span> with <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubectl -n kube-system get cm kubeadm-config -oyaml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
WARNING: Changes made to this host by </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubeadm init</span><span style="color: rgba(128, 0, 0, 1)">'</span> or <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubeadm join</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> will be reverted.
Are you sure you want to proceed</span>? : y
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
Removing </span><span style="color: rgba(0, 0, 255, 1)">info</span> <span style="color: rgba(0, 0, 255, 1)">for</span> node <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">192.168.132.131</span><span style="color: rgba(128, 0, 0, 1)">"</span> from the ConfigMap <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubeadm-config</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span> the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-system</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> Namespace
W0109 </span><span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">15</span>:<span style="color: rgba(128, 0, 128, 1)">22.217588</span>   <span style="color: rgba(128, 0, 128, 1)">56673</span> removeetcdmember.go:<span style="color: rgba(128, 0, 128, 1)">61</span><span style="color: rgba(0, 0, 0, 1)">] failed to remove etcd member: error syncing endpoints with etc: etcdclient: no available endpoints
.Please manually remove this etcd member using etcdctl
Stopping the kubelet service
Unmounting mounted directories </span><span style="color: rgba(0, 0, 255, 1)">in</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Deleting contents of config directories: [</span>/etc/kubernetes/manifests /etc/kubernetes/<span style="color: rgba(0, 0, 0, 1)">pki]
Deleting files: [</span>/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/<span style="color: rgba(0, 0, 0, 1)">scheduler.conf]
Deleting contents of stateful directories: [</span>/var/lib/etcd /var/lib/kubelet /var/lib/dockershim /var/run/kubernetes /var/lib/<span style="color: rgba(0, 0, 0, 1)">cni]

The reset process does not clean CNI configuration. To </span><span style="color: rgba(0, 0, 255, 1)">do</span> so, you must remove /etc/cni/<span style="color: rgba(0, 0, 0, 1)">net.d

The reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must </span><span style="color: rgba(0, 0, 255, 1)">do</span> so manually by using the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">iptables</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> command.

If your cluster was setup to utilize IPVS, run ipvsadm </span>--<span style="color: rgba(0, 0, 255, 1)">clear</span><span style="color: rgba(0, 0, 0, 1)"> (or similar)
to reset your system</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s IPVS tables.</span>
<span style="color: rgba(0, 0, 0, 1)">
The reset process does not clean your kubeconfig files and you must remove them manually.
Please, check the contents of the $HOME</span>/.kube/config <span style="color: rgba(0, 0, 255, 1)">file</span>.</pre>
</div>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre>The connection to the server <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>:<span style="color: rgba(128, 0, 128, 1)">6443</span> was refused - did you specify the right host or port?</pre>
</div>
<h3>3.2 修改配置</h3>
<p># vi kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">networking:
dnsDomain: cluster.local
serviceSubnet: </span><span style="color: rgba(128, 0, 128, 1)">10.96</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>/<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">
podSubnet: </span><span style="color: rgba(128, 0, 128, 1)">10.244</span>.<span style="color: rgba(128, 0, 128, 1)">0.0</span>/<span style="color: rgba(128, 0, 128, 1)">16      #添加这个内容</span></pre>
</div>
<p># kubeadm init --config kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>W0109 <span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">41.342579</span>   <span style="color: rgba(128, 0, 128, 1)">58496</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kube-proxy config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
W0109 </span><span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">41.342660</span>   <span style="color: rgba(128, 0, 128, 1)">58496</span> validation.go:<span style="color: rgba(128, 0, 128, 1)">28</span>] Cannot validate kubelet config -<span style="color: rgba(0, 0, 0, 1)"> no validator is available
Using Kubernetes version: v1.</span><span style="color: rgba(128, 0, 128, 1)">17.0</span><span style="color: rgba(0, 0, 0, 1)">
Running pre</span>-<span style="color: rgba(0, 0, 0, 1)">flight checks
    : detected </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cgroupfs</span><span style="color: rgba(128, 0, 0, 1)">"</span> as the Docker cgroup driver. The recommended driver is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">systemd</span><span style="color: rgba(128, 0, 0, 1)">"</span>. Please follow the guide at https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/setup/cri/</span>
Pulling images required <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> setting up a Kubernetes cluster
This might take a minute or two, depending on the speed of your internet connection
You can also perform this action </span><span style="color: rgba(0, 0, 255, 1)">in</span> beforehand using <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kubeadm config images pull</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet environment <span style="color: rgba(0, 0, 255, 1)">file</span> with flags to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/kubeadm-flags.env</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing kubelet configuration to <span style="color: rgba(0, 0, 255, 1)">file</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/var/lib/kubelet/config.yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Starting the kubelet
Using certificateDir folder </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/pki</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
apiserver serving cert is signed </span><span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [<span style="color: rgba(128, 0, 128, 1)">10.96</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver-kubelet-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">front-proxy-ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">front-proxy-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/ca</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/server</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
etcd</span>/server serving cert is signed <span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> localhost] and IPs [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> <span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> ::<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/peer</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
etcd</span>/peer serving cert is signed <span style="color: rgba(0, 0, 255, 1)">for</span> DNS names [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> localhost] and IPs [<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> <span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span> ::<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">etcd/healthcheck-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">apiserver-etcd-client</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> certificate and key
Generating </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sa</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> key and public key
Using kubeconfig folder </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">admin.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">controller-manager.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Writing </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">scheduler.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span> kubeconfig <span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Using manifest folder <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-apiserver</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-controller-manager</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
W0109 </span><span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">47.268638</span>   <span style="color: rgba(128, 0, 128, 1)">58496</span> manifests.go:<span style="color: rgba(128, 0, 128, 1)">214</span>] the default kube-apiserver authorization-mode is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span>; using <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest <span style="color: rgba(0, 0, 255, 1)">for</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-scheduler</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
W0109 </span><span style="color: rgba(128, 0, 128, 1)">13</span>:<span style="color: rgba(128, 0, 128, 1)">18</span>:<span style="color: rgba(128, 0, 128, 1)">47.272039</span>   <span style="color: rgba(128, 0, 128, 1)">58496</span> manifests.go:<span style="color: rgba(128, 0, 128, 1)">214</span>] the default kube-apiserver authorization-mode is <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span>; using <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Node,RBAC</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Creating static Pod manifest </span><span style="color: rgba(0, 0, 255, 1)">for</span> local etcd <span style="color: rgba(0, 0, 255, 1)">in</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
[</span><span style="color: rgba(0, 0, 255, 1)">wait</span>-control-plane] Waiting <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelet to boot up the control plane as static Pods from directory <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/manifests</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">. This can take up to 4m0s
All control plane components are healthy after </span><span style="color: rgba(128, 0, 128, 1)">13.503410</span><span style="color: rgba(0, 0, 0, 1)"> seconds
Storing the configuration used <span style="color: rgba(0, 0, 255, 1)">in</span> ConfigMap <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubeadm-config</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span> the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-system</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> Namespace
Creating a ConfigMap </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubelet-config-1.17</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span> namespace kube-system with the configuration <span style="color: rgba(0, 0, 255, 1)">for</span> the kubelets <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> the cluster
Skipping phase. Please see --upload-<span style="color: rgba(0, 0, 0, 1)">certs
Marking the node <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> as control-plane by adding the label <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">node-role.kubernetes.io/master=''</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
Marking the node <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span> as control-plane by adding the taints
Using token: abcdef.0123456789abcdef
Configuring bootstrap tokens, cluster-<span style="color: rgba(0, 0, 255, 1)">info</span><span style="color: rgba(0, 0, 0, 1)"> ConfigMap, RBAC Roles
configured RBAC rules to allow Node Bootstrap tokens to post CSRs <span style="color: rgba(0, 0, 255, 1)">in</span> order <span style="color: rgba(0, 0, 255, 1)">for</span> nodes to get <span style="color: rgba(0, 0, 255, 1)">long</span><span style="color: rgba(0, 0, 0, 1)"> term certificate credentials
configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
configured RBAC rules to allow certificate rotation <span style="color: rgba(0, 0, 255, 1)">for</span> all node client certificates <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> the cluster
Creating the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">cluster-info</span><span style="color: rgba(128, 0, 0, 1)">"</span> ConfigMap <span style="color: rgba(0, 0, 255, 1)">in</span> the <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kube-public</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> namespace
Updating <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/etc/kubernetes/kubelet.conf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> to point to a rotatable kubelet client certificate and key
Applied essential addon: CoreDNS
Applied essential addon: kube</span>-<span style="color: rgba(0, 0, 0, 1)">proxy

Your Kubernetes control</span>-plane has initialized successfully!<span style="color: rgba(0, 0, 0, 1)">

To start using your cluster, you need to run the following as a regular user:

</span><span style="color: rgba(0, 0, 255, 1)">mkdir</span> -p $HOME/<span style="color: rgba(0, 0, 0, 1)">.kube
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">cp</span> -i /etc/kubernetes/admin.conf $HOME/.kube/<span style="color: rgba(0, 0, 0, 1)">config
</span><span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">chown</span> $(<span style="color: rgba(0, 0, 255, 1)">id</span> -u):$(<span style="color: rgba(0, 0, 255, 1)">id</span> -g) $HOME/.kube/<span style="color: rgba(0, 0, 0, 1)">config

You should now deploy a pod network to the cluster.
Run </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubectl apply -f .yaml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> with one of the options listed at:
https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">kubernetes.io/docs/concepts/cluster-administration/addons/</span>
<span style="color: rgba(0, 0, 0, 1)">
Then you can </span><span style="color: rgba(0, 0, 255, 1)">join</span><span style="color: rgba(0, 0, 0, 1)"> any number of worker nodes by running the following on each as root:

kubeadm </span><span style="color: rgba(0, 0, 255, 1)">join</span> <span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>:<span style="color: rgba(128, 0, 128, 1)">6443</span> --<span style="color: rgba(0, 0, 0, 1)">token abcdef.0123456789abcdef \
    </span>--discovery-token-ca-cert-hash sha256:1d9bb00debd5812c1d5bf1ceb6f64151f32a489b8fc5c61d88a999798e3e2fe3</pre>
</div>
<p># mkdir -p $HOME/.kube</p>
<p># cp -i /etc/kubernetes/admin.conf $HOME/.kube/config</p>
<p># chown $(id -u):$(id -g) $HOME/.kube/config</p>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   Ready    master   2m40s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p># kubectl apply -f kube-flannel.yml</p>
<div class="cnblogs_code">
<pre>podsecuritypolicy.policy/<span style="color: rgba(0, 0, 0, 1)">psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
clusterrolebinding.rbac.authorization.k8s.io</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
serviceaccount</span>/<span style="color: rgba(0, 0, 0, 1)">flannel created
configmap</span>/kube-flannel-<span style="color: rgba(0, 0, 0, 1)">cfg created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">amd64 created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">arm64 created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">arm created
daemonset.apps</span>/kube-flannel-ds-<span style="color: rgba(0, 0, 0, 1)">ppc64le created
daemonset.apps</span>/kube-flannel-ds-s390x created</pre>
</div>
<p># kubectl get pods -n kube-system</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                    READY   STATUS    RESTARTS   AGE
coredns</span>-6955765f44-8kxdg                  <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m37s
coredns</span>-6955765f44-m66bw                  <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m37s
etcd</span>-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>                      <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m52s
kube</span>-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m52s
kube</span>-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m52s
kube</span>-flannel-ds-amd64-m9lgq               <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          12s
kube</span>-proxy-q867d                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m37s
kube</span>-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span>          3m52s</pre>
</div>
<h3>3.3 重新添加节点</h3>
<p># kubeadm config print join-defaults &gt; kubeadm-config.yaml</p>
<p># vi kubeadm-config.yaml</p>
<div class="cnblogs_code">
<pre>apiVersion: kubeadm.k8s.io/<span style="color: rgba(0, 0, 0, 1)">v1beta2
caCertPath: </span>/etc/kubernetes/pki/<span style="color: rgba(0, 0, 0, 1)">ca.crt
discovery:
bootstrapToken:
    apiServerEndpoint: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>:<span style="color: rgba(128, 0, 128, 1)">6443</span><span style="color: rgba(0, 0, 0, 1)">
    token: abcdef.0123456789abcdef
    unsafeSkipCAVerification: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
timeout: 5m0s
tlsBootstrapToken: abcdef.0123456789abcdef
kind: JoinConfiguration
nodeRegistration:
criSocket: </span>/var/run/<span style="color: rgba(0, 0, 0, 1)">dockershim.sock
name: </span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.132</span><span style="color: rgba(0, 0, 0, 1)">
taints: </span><span style="color: rgba(0, 0, 255, 1)">null</span></pre>
</div>
<p># docker ps -aq|xargs&nbsp; docker rm -f</p>
<p># systemctl stop kubelet</p>
<p># rm -rf /etc/kubernetes/*</p>
<p># rm -rf /var/lib/kubelet/*</p>
<p># kubeadm join --config kubeadm-config.yaml</p>
<p>第二个节点</p>
<p># systemctl stop kubelet</p>
<p># rm -rf /etc/kubernetes/</p>
<p># rm -rf /var/lib/kubelet/*</p>
<p># docker ps -aq|xargs docker rm -f</p>
<p># kubeadm join --config kubeadm-config.yaml</p>
<p>查看:</p>
<p># kubectl get nodes</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME            STATUS   ROLES    AGE   VERSION
</span><span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   Ready    master   16m   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span>
<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.132</span>   Ready    &lt;none&gt;   3m13s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span>
<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.133</span>   Ready    &lt;none&gt;   65s   v1.<span style="color: rgba(128, 0, 128, 1)">17.0</span></pre>
</div>
<p># kubectl get pods -n kube-system</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                    READY   STATUS    RESTARTS   AGE
coredns</span>-6955765f44-8kxdg                  <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
coredns</span>-6955765f44-m66bw                  <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
etcd</span>-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>                      <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
kube</span>-apiserver-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
kube</span>-controller-manager-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
kube</span>-flannel-ds-amd64-dbckr               <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m43s
kube</span>-flannel-ds-amd64-fg972               <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          95s
kube</span>-flannel-ds-amd64-m9lgq               <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          12m
kube</span>-proxy-7xgt9                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          3m43s
kube</span>-proxy-k8kb7                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          95s
kube</span>-proxy-q867d                        <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          16m
kube</span>-scheduler-<span style="color: rgba(128, 0, 128, 1)">192.168</span>.<span style="color: rgba(128, 0, 128, 1)">132.131</span>            <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span>          16m</pre>
</div>
<h2>四&nbsp; 安装Dashboard</h2>
<p>dashboard的github仓库地址:https://github.com/kubernetes/dashboard</p>
<p>代码仓库当中,有给出安装示例的相关部署文件,我们可以直接获取之后,直接部署即可</p>
<h3>4.1 下载yml文件</h3>
<p># wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml</p>
<p>默认这个部署文件当中,会单独创建一个名为kubernetes-dashboard的命名空间,并将kubernetes-dashboard部署在该命名空间下。dashboard的镜像来自docker hub官方,所以可不用修改镜像地址,直接从官方获取即可。</p>
<p># kubectl apply -f recommended.yaml&nbsp;</p>
<div class="cnblogs_code">
<pre>namespace/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
serviceaccount</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
service</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
secret</span>/kubernetes-dashboard-<span style="color: rgba(0, 0, 0, 1)">certs created
secret</span>/kubernetes-dashboard-<span style="color: rgba(0, 0, 0, 1)">csrf created
secret</span>/kubernetes-dashboard-key-<span style="color: rgba(0, 0, 0, 1)">holder created
configmap</span>/kubernetes-dashboard-<span style="color: rgba(0, 0, 0, 1)">settings created
role.rbac.authorization.k8s.io</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
clusterrole.rbac.authorization.k8s.io</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
rolebinding.rbac.authorization.k8s.io</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
clusterrolebinding.rbac.authorization.k8s.io</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
deployment.apps</span>/kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard created
service</span>/dashboard-metrics-<span style="color: rgba(0, 0, 0, 1)">scraper created
deployment.apps</span>/dashboard-metrics-scraper created</pre>
</div>
<p># kubectl get pods -n kubernetes-dashboard</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                       READY   STATUS    RESTARTS   AGE
dashboard</span>-metrics-scraper-76585494d8-5jtvw   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          86s
kubernetes</span>-dashboard-b7ffbc8cb-4xcdp         <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running   <span style="color: rgba(128, 0, 128, 1)">0</span>          86s</pre>
</div>
<p>已经运行</p>
<h3>4.2 开放端口设置</h3>
<p>在默认情况下,dashboard并不对外开放访问端口,这里简化操作,直接使用nodePort的方式将其端口暴露出来,修改serivce部分的定义:</p>
<p># vi recommended.yaml&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">kind: Service
apiVersion: v1
metadata:
labels:
    k8s</span>-app: kubernetes-<span style="color: rgba(0, 0, 0, 1)">dashboard
name: kubernetes</span>-<span style="color: rgba(0, 0, 0, 1)">dashboard
namespace: kubernetes</span>-<span style="color: rgba(0, 0, 0, 1)">dashboard
spec:
type: NodePort
ports:
    </span>- port: <span style="color: rgba(128, 0, 128, 1)">443</span><span style="color: rgba(0, 0, 0, 1)">
      targetPort: </span><span style="color: rgba(128, 0, 128, 1)">8443</span><span style="color: rgba(0, 0, 0, 1)">
      nodePort: </span><span style="color: rgba(128, 0, 128, 1)">32443</span><span style="color: rgba(0, 0, 0, 1)">
selector:
    k8s</span>-app: kubernetes-dashboard</pre>
</div>
<p># kubectl delete&nbsp; -f recommended.yaml&nbsp;</p>
<div class="cnblogs_code">
<pre>namespace <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
serviceaccount </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
service </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
secret </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard-certs</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
secret </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard-csrf</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
secret </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard-key-holder</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
configmap </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard-settings</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
role.rbac.authorization.k8s.io </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
clusterrole.rbac.authorization.k8s.io </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
rolebinding.rbac.authorization.k8s.io </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
clusterrolebinding.rbac.authorization.k8s.io </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
deployment.apps </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kubernetes-dashboard</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
service </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dashboard-metrics-scraper</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> deleted
deployment.apps </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dashboard-metrics-scraper</span><span style="color: rgba(128, 0, 0, 1)">"</span> deleted</pre>
</div>
<p># kubectl apply&nbsp; -f recommended.yaml</p>
<p># kubectl get pods -n kubernetes-dashboard</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">NAME                                       READY   STATUS            RESTARTS   AGE
dashboard</span>-metrics-scraper-76585494d8-cj9n9   <span style="color: rgba(128, 0, 128, 1)">1</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   Running             <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">          4s
kubernetes</span>-dashboard-b7ffbc8cb-nswqq         <span style="color: rgba(128, 0, 128, 1)">0</span>/<span style="color: rgba(128, 0, 128, 1)">1</span>   ContainerCreating   <span style="color: rgba(128, 0, 128, 1)">0</span>          4s</pre>
</div>
<h3>4.3 访问Token配置</h3>
<p>使用谷歌访问https://192.168.132.131:32443/出现</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112011821702-324844038.png" alt="" width="759" height="467"></p>
<p>使用火狐浏览器访问</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112011948035-187435108.png" alt="" width="626" height="171"></p>
<p>点击高级</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112012008677-35965870.png" alt="" width="654" height="197"></p>
<p>接受风险并继续</p>
<p>使用Token</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112012142209-339349683.png" alt="" width="719" height="326"></p>
<p>可以看到出现如上图画面,需要我们输入一个kubeconfig文件或者一个token。事实上在安装dashboard时,也为我们默认创建好了一个serviceaccount,为kubernetes-dashboard,并为其生成好了token,我们可以通过如下指令获取该sa的token:</p>
<p># kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep&nbsp; kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'&nbsp; &nbsp; &nbsp;</p>
<div class="cnblogs_code">
<pre>kubernetes-dashboard-token-<span style="color: rgba(0, 0, 0, 1)">kvtdw
kubernetes.io</span>/service-account-<span style="color: rgba(0, 0, 0, 1)">token
eyJhbGciOiJSUzI1NiIsImtpZCI6Inl0U2JtWkVaSkNjbFpCMGpkVktHTGtTUTFvZFc3LVUxeUllRkRyalcxYncifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1rdnRkdyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjMyMTgxNjhiLTM2N2ItNDZjMi1iZWE0LWI2MzM3YWIxZmZjMCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.oLAu</span>-403EhotW7CQ9BVT4R9CbFmvtJekPoH2hZD2ifkG43GpAqWm8YrOqqjJpl0bVvToFY5i4kaBHzOSiPk8CresCodaYC-qt19uzam-E894rKWz6X9OlKudgR7agAkZdtYQPqpmkd4FKoF0JdyT3k1V5Kc0Jm3_8Fz4Vg9R76p_BWTZQjr_ed-HqOyQ1-zaBA3bImx7h8VQZm_V70EUu4CEnLFoPbpSRIkN5PfwBGHXYIMvnyHLyxuqfVKvtpldXTKF3IYcIb2Rp5ctHJz0abaxR2W-BeQ07nMX9D9oBRwVoxnXJSqgUL4pHLD4IuZS4PShAJwcswp04r7bxOFbtQ</pre>
</div>
<p>复制上面内容粘贴</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112012454952-349429969.png" alt="" width="689" height="312"></p>
<p>登陆</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112012635202-951226149.png" alt="" width="767" height="144"></p>
<h3>4.4 权限配置</h3>
<p>由于这个权限太小,修改一个超级管理员权限</p>
<p># vi recommended.yaml&nbsp;</p>
<div class="cnblogs_code">
<pre>apiVersion: rbac.authorization.k8s.io/<span style="color: rgba(0, 0, 0, 1)">v1
kind: ClusterRoleBinding
metadata:
name: kubernetes</span>-<span style="color: rgba(0, 0, 0, 1)">dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster</span>-<span style="color: rgba(0, 0, 0, 1)">admin
subjects:
</span>-<span style="color: rgba(0, 0, 0, 1)"> kind: ServiceAccount
    name: kubernetes</span>-<span style="color: rgba(0, 0, 0, 1)">dashboard
    namespace: kubernetes</span>-dashboard</pre>
</div>
<p># kubectl delete -f recommended.yaml ;kubectl apply -f recommended.yaml</p>
<p>重新获取token</p>
<p># kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep&nbsp; kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'</p>
<div class="cnblogs_code">
<pre>eyJhbGciOiJSUzI1NiIsImtpZCI6Inl0U2JtWkVaSkNjbFpCMGpkVktHTGtTUTFvZFc3LVUxeUllRkRyalcxYncifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1qOHNrOSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjRjZDQxY2QwLTMyNTQtNGM2ZC05YmI5LTFmNjYxYzAwY2YxYSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.CR-SJO9K4w7dKaoLVsDGZ9j-pq3XH5a2YPpjRiSERT5bRQO0MVBM-fvXdc9oX-Dyp5smXkYpe-K6DsIZ_G4w01miDko_oCgPlNXq6yVrbh8X-DHB-JKNOnMCq7Ax2TqWEnJ54OyJTcguyJY_H2lFtFd3LP6vcNVFFhZfvW9u3tXOBAlVnUR_u4L3KkzrZi4TPd3OLM8Dt6FDNqrXolbVqdnfFtRNfUginWeUOngXf0sLQpvqmG7YxKkVkkdBavO5qG-up8dV3hIw1RrBCnsRGjtzxmkGEx4DF2_Mxd3yjZw6uqoLLMYEmMhKZ7xwWNbPw7AIxUDGSLj_tcidmVxsFA</pre>
</div>
<p>再次使用token就会看到以下信息</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1624149/202001/1624149-20200112014322135-1103966062.png" alt="" width="1063" height="539"></p>
<p>集群安装安装完成</p>
<p>https://github.com/fanux/sealos</p>
<p><span class="text-gray-dark mr-2">kubernetes高可用安装工具,一条命令,离线安装,包含所有依赖,内核负载不依赖haproxy keepalived,纯golang开发,99年证书,支持v1.16.4 v1.15.7 v1.14.10 v1.17.0!&nbsp;<span>https://sealyun.com</span></span></p>
<hr>
<p><span class="text-gray-dark mr-2"><span><span style="color: rgba(255, 0, 0, 1)">博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(<span style="color: rgba(255, 0, 0, 1)">https://www.cnblogs.com/breezey/</span>)本人同意即可转载,谢谢!</span></span></span></p>

</div>
<div id="MySignature" role="contentinfo">
    <div>作者:梦中泪</div>
<div>出处:http://www.cnblogs.com/zyxnhr/
</div>
<div>关于作者:云计算,linux,虚拟化,存储</div>
<p>---------------------------------------------------------------------------</p>
<p>个性签名:我以为我很颓废,今天我才知道,原来我早报废了。</p>
<p>如果觉得本篇文章最您有帮助,欢迎转载,且在文章页面明显位置给出原文链接!记得在右下角点个<span>“推荐”</span>,博主在此感谢!</p><br><br>
来源:https://www.cnblogs.com/zyxnhr/p/12181721.html
頁: [1]
查看完整版本: 002.使用kubeadm安装kubernetes 1.17.0