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

RKE安装kubernetes

1.安装rke、helm、kubectl(在rancher1安装即可)

1.1、安装rke

下载rke文件并上传到rancher-01上
https://github.com/rancher/rke/releases/download/v1.2.3/rke_linux-amd64

chmod +x rke_linux-amd64
mv rke_linux-amd64 /usr/bin/rke

查看版本

rke --version   或 rke -v
rke version v1.2.3

1.2、安装kubectl

下载下载文件kubernetes-client-linux-amd64.tar.gz并上传到rancher-01上传
https://dl.k8s.io/v1.19.4/kubernetes-client-linux-amd64.tar.gz

tar -zxvf  
cp ./kubernetes/client/bin/kubectl  /usr/bin/kubectl

1.3、安装helm

1.3.1 helm安装包下载

https://github.com/helm/helm/releases
在页的Installation and Upgrading下(如图),复制下载链接或直接点击下载
https://get.helm.sh/helm-v3.4.1-linux-amd64.tar.gz

1.3.2 在线下载并安装

[root@rancher0 ~]# wget https://get.helm.sh/helm-v3.4.1-linux-amd64.tar.gz \
&&   tar xf helm-v3.0.3-linux-amd64.tar.gz  \
&&   cd linux-amd64 \
&&   mv helm  /usr/sbin/

2.在主机创建rancher用户并分发密码

2.1 在所有机器都操作创建用户rancher

useradd rancher
usermod -aG docker rancher
echo "rancher" | passwd --stdin rancher

2.2 在所有机器授权

vim /etc/sudoers
rancher ALL=(ALL)       NOPASSWD:ALL

2.3 以下在rancher1机器执行即可

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

3.创建rke文件

cd ~
vim rancher-cluster.yml

输入如下内容:

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

4.启动Kubernetes 集群

配置完rancher-cluster.yml之后,启动Kubernetes 集群

4.1 检查daemon.json是否已正确配置

在启动之前,所有主机先配置/etc/docker/daemon.json,加入镜像仓库地址

vim /etc/docker/daemon.json

{
  "insecure-registries": ["172.16.7.199:80"],
  "registry-mirrors": ["https://dekn3ozn.mirror.aliyuncs.com"]
}

重启docker

systemctl restart docker

4.2 启动Kubernetes 集群

[root@rancher1 ~]# su - rancher
rke up --config ./rancher-cluster.yml

安装完成后最后一行提示:

INFO[0155] Finished building Kubernetes cluster successfully

说明:安装全程不报错最终提示安装完成,如果要重新来过,再次运行即可。
完成完成后,在/home/rancher目录下会生成以下两个文件:

kube_config_rancher-cluster.yml
rancher-cluster.rkestate

4.3 将以下文件的副本保存在安全的位置

rancher-cluster.yml            :  RKE 配置文件
kube_config_rancher-cluster.yml:  Kubeconfig 文件
rancher-cluster.rkestate       :  Kubernetes 集群状态文件

5.测试集群以及检查集群状态

5.1 配置文件

要使用相关命令,需配置一下文件:

[rancher@rancher1 ~]$  mkdir -p /home/rancher/.kube     
[rancher@rancher1 ~]$ cp kube_config_rancher-cluster.yml  $HOME/.kube/config

5.2 查看节点状态

[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

5.3

[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

说明:

  • Pod 是Running或Completed状态。
  • STATUS 为 Running 的 Pod,READY 应该显示所有容器正在运行 (例如,3/3)。
  • STATUS 为 Completed的 Pod 是一次运行的作业。对于这些 Pod,READY应为0/1。