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。