蔡建培 發表於 2023-6-8 00:00:00

使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法

<p>
        本文参考kubernetes官网文章Installing Kubernetes on Linux with kubeadm在CentOS7.2使用Kubeadm部署Kuebernetes集群,解决了一些在按照该文档部署时遇到的问题。</p>
<p>
        操作系统版本</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_168524">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># cat /etc/redhat-release </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">CentOS Linux release 7.2.1511 (Core)</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        内核版本</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_218706">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># uname -r</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">3.10.0-327.el7.x86_64</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        集群节点</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_51298">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">192.168.120.122 kube-master</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">192.168.120.123 kube-agent1</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">192.168.120.124 kube-agent2</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">192.168.120.125 kube-agent3</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        即该集群包含一个控制节点和三个工作节点。</p>
<p>
        <strong>部署前的准备</strong></p>
<p>
        配置可以访问google相关网站</p>
<p>
        这种部署方式使用的软件包由google相关源提供,因此集群节点必须能够访问外网,至于如何配置请自行解决。</p>
<p>
        关闭防火墙</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_855912">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># systemctl stop firewalld.service &amp;&amp; systemctl disable firewalld.service</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        禁用SELinux</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_940293">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># setenforce 0</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># sed -i.bak 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        配置yum源</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_861059">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># cat &lt;&lt;EOF &gt; /etc/yum.repos.d/kubernetes.repo</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">name=Kubernetes</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">baseurl=https:</code><code class="bash plain">//packages</code><code class="bash plain">.cloud.google.com</code><code class="bash plain">/yum/repos/kubernetes-el7-x86_64</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">enabled=1</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">gpgcheck=1</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">repo_gpgcheck=1</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">gpgkey=https:</code><code class="bash plain">//packages</code><code class="bash plain">.cloud.google.com</code><code class="bash plain">/yum/doc/yum-key</code><code class="bash plain">.gpg</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash spaces">    </code><code class="bash plain">https:</code><code class="bash plain">//packages</code><code class="bash plain">.cloud.google.com</code><code class="bash plain">/yum/doc/rpm-package-key</code><code class="bash plain">.gpg</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash plain">EOF</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>安装kubelet和kubeadm</strong></p>
<p>
        在所有节点上安装以下软件包:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_233023">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># yum install -y docker kubelet kubeadm kubectl kubernetes-cni</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># systemctl enable docker &amp;&amp; systemctl start docker</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># systemctl enable kubelet &amp;&amp; systemctl start kubelet</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后设置内核参数:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_438525">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># sysctl net.bridge.bridge-nf-call-iptables=1</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># sysctl net.bridge.bridge-nf-call-ip6tables=1</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>初始化控制节点</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_491733">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># kubeadm init --pod-network-cidr=10.244.0.0/16</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        因为在该集群中将使用flannel搭建pod网络,因此必须添加–pod-network-cidr参数。</p>
<p>
        注意:初始化较慢,因为该过程会pull一些docker image。</p>
<p>
        该命令的输出如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_911804">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                        <div class="line number28 index27 alt1">
                                                                28</div>
                                                        <div class="line number29 index28 alt2">
                                                                29</div>
                                                        <div class="line number30 index29 alt1">
                                                                30</div>
                                                        <div class="line number31 index30 alt2">
                                                                31</div>
                                                        <div class="line number32 index31 alt1">
                                                                32</div>
                                                        <div class="line number33 index32 alt2">
                                                                33</div>
                                                        <div class="line number34 index33 alt1">
                                                                34</div>
                                                        <div class="line number35 index34 alt2">
                                                                35</div>
                                                        <div class="line number36 index35 alt1">
                                                                36</div>
                                                        <div class="line number37 index36 alt2">
                                                                37</div>
                                                        <div class="line number38 index37 alt1">
                                                                38</div>
                                                        <div class="line number39 index38 alt2">
                                                                39</div>
                                                        <div class="line number40 index39 alt1">
                                                                40</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">Initializing your master...</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain"> WARNING: kubeadm is in beta, please do not use it for production clusters.</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain"> Using Kubernetes version: v1.6.4</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain"> Using Authorization mode: RBAC</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain"> Running pre-flight checks</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain"> Generated CA certificate and key.</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain"> Generated API server certificate and key.</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain"> API Server serving cert is signed for DNS names and IPs </code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="plain plain"> Generated API server kubelet client certificate and key.</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="plain plain"> Generated service account token signing key and public key.</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="plain plain"> Generated front-proxy CA certificate and key.</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="plain plain"> Generated front-proxy client certificate and key.</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="plain plain"> Valid certificates and keys now exist in "/etc/kubernetes/pki"</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="plain plain"> Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="plain plain"> Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="plain plain"> Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="plain plain"> Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="plain plain"> Created API client, waiting for the control plane to become ready</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="plain plain"> All control plane components are healthy after 1377.560339 seconds</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="plain plain"> Waiting for at least one node to register</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="plain plain"> First node has registered after 6.039626 seconds</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="plain plain"> Using token: 60bc68.e94800f3c5c4c2d5</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="plain plain"> Created RBAC rules</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="plain plain"> Created essential addon: kube-proxy</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="plain plain"> Created essential addon: kube-dns</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                         </div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="plain plain">Your Kubernetes master has initialized successfully!</code>
</div>
                                                                <div class="line number28 index27 alt1">
                                                                         </div>
                                                                <div class="line number29 index28 alt2">
                                                                        <code class="plain plain">To start using your cluster, you need to run (as a regular user):</code>
</div>
                                                                <div class="line number30 index29 alt1">
                                                                         </div>
                                                                <div class="line number31 index30 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">sudo cp /etc/kubernetes/admin.conf $HOME/</code>
</div>
                                                                <div class="line number32 index31 alt1">
                                                                        <code class="plain spaces"> </code><code class="plain plain">sudo chown $(id -u):$(id -g) $HOME/admin.conf</code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">export KUBECONFIG=$HOME/admin.conf</code>
</div>
                                                                <div class="line number34 index33 alt1">
                                                                         </div>
                                                                <div class="line number35 index34 alt2">
                                                                        <code class="plain plain">You should now deploy a pod network to the cluster.</code>
</div>
                                                                <div class="line number36 index35 alt1">
                                                                        <code class="plain plain">Run "kubectl apply -f .yaml" with one of the options listed at: http://kubernetes.io/docs/admin/addons/</code>
</div>
                                                                <div class="line number37 index36 alt2">
                                                                         </div>
                                                                <div class="line number38 index37 alt1">
                                                                        <code class="plain plain">You can now join any number of machines by running the following on each node as root:</code>
</div>
                                                                <div class="line number39 index38 alt2">
                                                                         </div>
                                                                <div class="line number40 index39 alt1">
                                                                        <code class="plain spaces"> </code><code class="plain plain">kubeadm join --token &lt;token&gt; 192.168.120.122:6443</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        观察控制节点的docker image:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_311919">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># docker images</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">REPOSITORY                        TAG         IMAGE ID      CREATED       SIZE</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/kube-apiserver-amd64</code>      <code class="bash plain">v1.6.4       4e3810a19a64    2 days ago     150.6 MB</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/kube-controller-manager-amd64</code>  <code class="bash plain">v1.6.4       0ea16a85ac34    2 days ago     132.8 MB</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/kube-proxy-amd64</code>        <code class="bash plain">v1.6.4       e073a55c288b    2 days ago     109.2 MB</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/kube-scheduler-amd64</code>      <code class="bash plain">v1.6.4       1fab9be555e1    2 days ago     76.75 MB</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/etcd-amd64</code>           <code class="bash plain">3.0.17       243830dae7dd    12 weeks ago    168.9 MB</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">gcr.io</code><code class="bash plain">/google_containers/pause-amd64</code>           <code class="bash plain">3.0         99e59f495ffa    12 months ago    746.9 kB</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        按照初始化命令的提示执行以下操作:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_984906">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># cp /etc/kubernetes/admin.conf $HOME/</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># chown $(id -u):$(id -g) $HOME/admin.conf</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># export KUBECONFIG=$HOME/admin.conf</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>隔离控制节点</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_415836">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># kubectl taint nodes --all node-role.kubernetes.io/master-</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">node </code><code class="bash string">"kube-master"</code> <code class="bash plain">tainted</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>安装pod网络</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_669095">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># kubectl apply -f flannel/Documentation/kube-flannel-rbac.yml</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">clusterrole </code><code class="bash string">"flannel"</code> <code class="bash plain">created</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">clusterrolebinding </code><code class="bash string">"flannel"</code> <code class="bash plain">created</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash comments"># kubectl apply -f flannel/Documentation/kube-flannel.yml</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">serviceaccount </code><code class="bash string">"flannel"</code> <code class="bash plain">created</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">configmap </code><code class="bash string">"kube-flannel-cfg"</code> <code class="bash plain">created</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">daemonset </code><code class="bash string">"kube-flannel-ds"</code> <code class="bash plain">created</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        可以通过git clone flannel仓库:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_343468">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># git clone https://github.com/coreos/flannel.git</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>添加工作节点</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_730495">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># kubeadm join --token &lt;token&gt; 192.168.120.122:6443</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        该操作输出如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_705981">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"> WARNING: kubeadm is in beta, please do not use it for production clusters.</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain"> Running pre-flight checks</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain"> Trying to connect to API Server "192.168.120.122:6443"</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain"> Created cluster-info discovery client, requesting info from "https://192.168.120.122:6443"</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain"> Cluster info signature and contents are valid, will use API Server "https://192.168.120.122:6443"</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain"> Successfully established connection with API Server "192.168.120.122:6443"</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain"> Detected server version: v1.6.4</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain"> The server supports the Certificates API (certificates.k8s.io/v1beta1)</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="plain plain"> Created API client to obtain unique certificate for this node, generating keys and certificate signing request</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="plain plain"> Received signed certificate from the API server, generating KubeConfig...</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="plain plain"> Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                         </div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="plain plain">Node join complete:</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="plain plain">* Certificate signing request sent to master and response</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">received.</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="plain plain">* Kubelet informed of new secure connection details.</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                         </div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="plain plain">Run 'kubectl get nodes' on the master to see this machine join.</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>在控制节点观察集群状态</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_520286">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"># kubectl get nodes</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">NAME     STATUS  AGE    VERSION</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">kube-agent1  Ready   16m    v1.6.3</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">kube-agent2  Ready   16m    v1.6.3</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">kube-agent3  Ready   16m    v1.6.3</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain">kube-master  Ready   37m    v1.6.3</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                         </div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain"># kubectl get pods --all-namespaces -o wide</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="plain plain">NAMESPACE   NAME                 READY   STATUS  RESTARTS  AGE    IP        NODE</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="plain plain">kube-system  etcd-kube-master           1/1    Running  0     32m    192.168.120.122  kube-master</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="plain plain">kube-system  kube-apiserver-kube-master      1/1    Running  7     32m    192.168.120.122  kube-master</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="plain plain">kube-system  kube-controller-manager-kube-master  1/1    Running  0     32m    192.168.120.122  kube-master</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="plain plain">kube-system  kube-dns-3913472980-3x9wh       3/3    Running  0     37m    10.244.0.2    kube-master</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="plain plain">kube-system  kube-flannel-ds-1m4wz         2/2    Running  0     18m    192.168.120.122  kube-master</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="plain plain">kube-system  kube-flannel-ds-3jwf5         2/2    Running  0     17m    192.168.120.123  kube-agent1</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="plain plain">kube-system  kube-flannel-ds-41qbs         2/2    Running  4     17m    192.168.120.125  kube-agent3</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="plain plain">kube-system  kube-flannel-ds-ssjct         2/2    Running  4     17m    192.168.120.124  kube-agent2</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="plain plain">kube-system  kube-proxy-0mmfc           1/1    Running  0     17m    192.168.120.124  kube-agent2</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="plain plain">kube-system  kube-proxy-23vwr           1/1    Running  0     17m    192.168.120.125  kube-agent3</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="plain plain">kube-system  kube-proxy-5q8vq           1/1    Running  0     17m    192.168.120.123  kube-agent1</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="plain plain">kube-system  kube-proxy-8srwn           1/1    Running  0     37m    192.168.120.122  kube-master</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="plain plain">kube-system  kube-scheduler-kube-master      1/1    Running  0     32m    192.168.120.122  kube-master</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        至此,完成Kubernetes集群的部署。</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:http://blog.csdn.net/u012066426/article/details/72627305</p>
頁: [1]
查看完整版本: 使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法