miaoyun+Rancher+K8S学习与实践


04_RKE安装kubernetes(Rancher-高可用集群HA部署-离线安装)

<p>RKE安装kubernetes</p> <h1>1.安装rke、helm、kubectl(在rancher1安装即可)</h1> <h2>1.1、安装rke</h2> <p>下载rke文件并上传到rancher-01上 <a href="https://github.com/rancher/rke/releases/download/v1.2.3/rke_linux-amd64">https://github.com/rancher/rke/releases/download/v1.2.3/rke_linux-amd64</a></p> <pre><code class="language-bash">chmod +x rke_linux-amd64 mv rke_linux-amd64 /usr/bin/rke</code></pre> <p>查看版本</p> <pre><code class="language-bash">rke --version 或 rke -v rke version v1.2.3</code></pre> <h2>1.2、安装kubectl</h2> <p>下载下载文件kubernetes-client-linux-amd64.tar.gz并上传到rancher-01上传 <a href="https://dl.k8s.io/v1.19.4/kubernetes-client-linux-amd64.tar.gz">https://dl.k8s.io/v1.19.4/kubernetes-client-linux-amd64.tar.gz</a></p> <pre><code class="language-bash">tar -zxvf cp ./kubernetes/client/bin/kubectl /usr/bin/kubectl</code></pre> <h2>1.3、安装helm</h2> <h3>1.3.1 helm安装包下载</h3> <p><a href="https://github.com/helm/helm/releases">https://github.com/helm/helm/releases</a> 在页的Installation and Upgrading下(如图),复制下载链接或直接点击下载 <a href="https://get.helm.sh/helm-v3.4.1-linux-amd64.tar.gz">https://get.helm.sh/helm-v3.4.1-linux-amd64.tar.gz</a> <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/c73f976c3b60f497829f3dbeb4e95d06?showdoc=.jpg" alt="" /></p> <h3>1.3.2 在线下载并安装</h3> <pre><code class="language-bash">[root@rancher0 ~]# wget https://get.helm.sh/helm-v3.4.1-linux-amd64.tar.gz \ &amp;&amp; tar xf helm-v3.0.3-linux-amd64.tar.gz \ &amp;&amp; cd linux-amd64 \ &amp;&amp; mv helm /usr/sbin/</code></pre> <h2>2.在主机创建rancher用户并分发密码</h2> <h3>2.1 在所有机器都操作创建用户rancher</h3> <pre><code class="language-bash">useradd rancher usermod -aG docker rancher echo "rancher" | passwd --stdin rancher</code></pre> <h3>2.2 在所有机器授权</h3> <pre><code class="language-bash">vim /etc/sudoers rancher ALL=(ALL) NOPASSWD:ALL</code></pre> <h3>2.3 以下在rancher1机器执行即可</h3> <pre><code class="language-bash">su - rancher ssh-keygen ssh-copy-id rancher@172.16.7.201 ssh-copy-id rancher@172.16.7.202 ssh-copy-id rancher@172.16.7.203</code></pre> <h2>3.创建rke文件</h2> <pre><code class="language-bash">cd ~ vim rancher-cluster.yml</code></pre> <p>输入如下内容:</p> <pre><code class="language-bash">nodes: - address: 172.16.7.201 internal_address: 172.16.7.201 user: rancher role: ["controlplane", "etcd", "worker"] ssh_key_path: /home/rancher/.ssh/id_rsa - address: 172.16.7.202 internal_address: 172.16.7.202 user: rancher role: ["controlplane", "etcd", "worker"] ssh_key_path: /home/rancher/.ssh/id_rsa - address: 172.16.7.203 internal_address: 172.16.7.203 user: rancher role: ["controlplane", "etcd", "worker"] ssh_key_path: /home/rancher/.ssh/id_rsa private_registries: - url: 172.16.7.199:80 user: admin password: Harbor12345 is_default: true</code></pre> <h2>4.启动Kubernetes 集群</h2> <p>配置完rancher-cluster.yml之后,启动Kubernetes 集群</p> <h3>4.1 检查daemon.json是否已正确配置</h3> <p>在启动之前,所有主机先配置/etc/docker/daemon.json,加入镜像仓库地址</p> <p>vim /etc/docker/daemon.json</p> <pre><code class="language-bash">{ "insecure-registries": ["172.16.7.199:80"], "registry-mirrors": ["https://dekn3ozn.mirror.aliyuncs.com"] }</code></pre> <p>重启docker</p> <pre><code class="language-bash">systemctl restart docker</code></pre> <h3>4.2 启动Kubernetes 集群</h3> <pre><code class="language-bash">[root@rancher1 ~]# su - rancher rke up --config ./rancher-cluster.yml</code></pre> <p>安装完成后最后一行提示:</p> <pre><code class="language-bash">INFO[0155] Finished building Kubernetes cluster successfully</code></pre> <p>说明:安装全程不报错最终提示安装完成,如果要重新来过,再次运行即可。 完成完成后,在/home/rancher目录下会生成以下两个文件:</p> <pre><code class="language-bash">kube_config_rancher-cluster.yml rancher-cluster.rkestate</code></pre> <h3>4.3 将以下文件的副本保存在安全的位置</h3> <pre><code class="language-bash">rancher-cluster.yml : RKE 配置文件 kube_config_rancher-cluster.yml: Kubeconfig 文件 rancher-cluster.rkestate : Kubernetes 集群状态文件</code></pre> <h2>5.测试集群以及检查集群状态</h2> <h3>5.1 配置文件</h3> <p>要使用相关命令,需配置一下文件:</p> <pre><code class="language-bash">[rancher@rancher1 ~]$ mkdir -p /home/rancher/.kube [rancher@rancher1 ~]$ cp kube_config_rancher-cluster.yml $HOME/.kube/config</code></pre> <h3>5.2 查看节点状态</h3> <pre><code class="language-bash">[rancher@rancher1 ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.16.7.201 Ready controlplane,etcd,worker 68m v1.19.3 172.16.7.202 Ready controlplane,etcd,worker 68m v1.19.3 172.16.7.203 Ready controlplane,etcd,worker 68m v1.19.3</code></pre> <h3>5.3</h3> <pre><code class="language-bash">[rancher@rancher1 ~]$ kubectl get pod --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE ingress-nginx default-http-backend-8c486c85-nzhfr 1/1 Running 0 69m ingress-nginx nginx-ingress-controller-c8cb4 1/1 Running 0 69m ingress-nginx nginx-ingress-controller-fjfxc 1/1 Running 0 69m ingress-nginx nginx-ingress-controller-wznvq 1/1 Running 0 69m kube-system calico-kube-controllers-5dd9698dd4-h8j4n 1/1 Running 0 70m kube-system canal-92mp2 2/2 Running 0 70m kube-system canal-d5jnv 2/2 Running 0 70m kube-system canal-mcp6s 2/2 Running 0 70m kube-system coredns-549648bbfb-fk7pw 1/1 Running 0 69m kube-system coredns-549648bbfb-p7mvl 1/1 Running 0 70m kube-system coredns-autoscaler-5ddfb7c56d-jjkvq 1/1 Running 0 70m kube-system metrics-server-848f5f4f77-65dsm 1/1 Running 0 69m kube-system rke-coredns-addon-deploy-job-fcgt6 0/1 Completed 0 70m kube-system rke-ingress-controller-deploy-job-59pzp 0/1 Completed 0 69m kube-system rke-metrics-addon-deploy-job-9m8j8 0/1 Completed 0 69m kube-system rke-network-plugin-deploy-job-9p4md 0/1 Completed 0 70m</code></pre> <p>说明:</p> <ul> <li>Pod 是Running或Completed状态。</li> <li>STATUS 为 Running 的 Pod,READY 应该显示所有容器正在运行 (例如,3/3)。</li> <li>STATUS 为 Completed的 Pod 是一次运行的作业。对于这些 Pod,READY应为0/1。</li> </ul>

页面列表

ITEM_HTML