rancher rke简介
Rancher Kubernetes Engine,简称 RKE,是一个经过 CNCF 认证的 Kubernetes 安装程序。RKE 支持多种操作系统,包括 MacOS、Linux 和 Windows,可以在裸金属服务器(BMS)和虚拟服务器(Virtualized Server)上运行。
RKE 既可以单独使用,作为创建 Kubernetes 集群的工具,也可以配合 Rancher2.x 使用,作为 Rancher2.x 的组件,在 Rancher 中部署和运行 Kubernetes 集群。
参考:https://rancher.com/docs/rke/latest/en/
部署kubernetes集群
以部署3master 1node高可用kubernetes集群为例。
所有节点安装docker,参考:https://rancher.com/docs/rke/latest/en/os/#installing-docker
curl https://releases.rancher.com/install-docker/18.09.2.sh | sh
所有节点创建普通用户,rke部署不允许使用root 用户
useradd rke -G docker
echo "123456" | passwd --stdin rke
第一个master节点同时作为部署节点,以下操作在第一个节点执行
安装rke
VERSION=v1.1.9 && \
curl -LO https://github.com/rancher/rke/releases/download/$VERSION/rke_linux-amd64 && \
chmod +x rke_linux-amd64 && \
mv rke_linux-amd64 /usr/local/bin/rke
配置ssh免密,以下所有操作切换到rke用户执行
su - rke
ssh-keygen
ssh-copy-id rke@192.168.1.119
ssh-copy-id rke@192.168.1.120
ssh-copy-id rke@192.168.1.121
ssh-copy-id rke@192.168.1.122
创建集群配置文件
#生成空的集群配置文件
rke config --empty --name cluster.yml
#清空配置文件
echo > cluster.yml
修改cluster.yml,部署3个master节点及1个node节点:
参考:https://rancher.com/docs/rke/latest/en/example-yamls/#minimal-cluster-yml-example
nodes:
- address: 192.168.1.119
user: rke
role:
- controlplane
- etcd
hostname_override: k8s-master1
- address: 192.168.1.120
user: rke
role:
- controlplane
- etcd
hostname_override: k8s-master2
- address: 192.168.1.121
user: rke
role:
- controlplane
- etcd
hostname_override: k8s-master3
- address: 192.168.1.122
user: rke
role:
- worker
hostname_override: k8s-node1
部署kubernetes集群
rke up
部署完成后查看本地生成的kube_config_cluster.yml
$ ls
cluster.rkestate cluster.yml kube_config_cluster.yml
切换到root用户,安装kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl
复制kube_config_cluster.yml到/root/.kube/config
mkdir -p /root/.kube/
cp /home/rke/kube_config_cluster.yml /root/.kube/config
查看集群信息
# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master1 Ready controlplane,etcd 104s v1.18.9 192.168.1.119 <none> CentOS Linux 7 (Core) 3.10.0-1127.18.2.el7.x86_64 docker://18.9.2
k8s-master2 Ready controlplane,etcd 104s v1.18.9 192.168.1.120 <none> CentOS Linux 7 (Core) 3.10.0-1127.18.2.el7.x86_64 docker://18.9.2
k8s-master3 Ready controlplane,etcd 104s v1.18.9 192.168.1.121 <none> CentOS Linux 7 (Core) 3.10.0-1127.18.2.el7.x86_64 docker://18.9.2
k8s-node1 Ready worker 102s v1.18.9 192.168.1.122 <none> CentOS Linux 7 (Core) 3.10.0-1127.18.2.el7.x86_64 docker://18.9.2
# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx default-http-backend-598b7d7dbd-528fn 1/1 Running 0 81s
ingress-nginx nginx-ingress-controller-z5xg7 1/1 Running 0 81s
kube-system canal-8gth9 2/2 Running 0 97s
kube-system canal-9lkch 2/2 Running 0 97s
kube-system canal-fld4q 2/2 Running 0 97s
kube-system canal-g6mx5 2/2 Running 0 97s
kube-system coredns-849545576b-r4t7b 1/1 Running 0 91s
kube-system coredns-autoscaler-5dcd676cbd-wbrfp 1/1 Running 0 90s
kube-system metrics-server-697746ff48-2n9g8 1/1 Running 0 86s
kube-system rke-coredns-addon-deploy-job-fh4pv 0/1 Completed 0 93s
kube-system rke-ingress-controller-deploy-job-sdc56 0/1 Completed 0 83s
kube-system rke-metrics-addon-deploy-job-7vlcr 0/1 Completed 0 88s
kube-system rke-network-plugin-deploy-job-nkbmm 0/1 Completed 0 98s
清理rke集群
su - rke
rke remove