sudo apt update sudo apt-get install unzip curl software-properties-common snap -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get install docker-ce=5:19.03.14~3-0~ubuntu-focal docker-ce-cli=5:19.03.14~3-0~ubuntu-focal containerd.io -y
sudo curl -LO https://dl.k8s.io/release/v1.18.17/bin/linux/amd64/kubectl sudo chmod a+x kubectl sudo mv ./kubectl /usr/local/bin/ mkdir -p ~/.kube/
sudo swapoff -a
sudo useradd -s /bin/bash -d /home/rkeuser/ -m -G sudo rkeuser sudo passwd rkeuser sudo usermod -aG docker rkeuser
ssh-keygen -t rsa -C '[email protected]'
ssh-copy-id [email protected] ssh-copy-id [email protected]
ssh [email protected] docker ps
sudo vi /etc/ssh/sshd_config
: AllowTcpForwarding yes :
sudo systemctl reload sshd
wget https://github.com/rancher/rke/releases/download/v1.2.7/rke_linux-amd64 sudo mv rke_linux-amd64 /usr/local/bin/rke sudo chmod +x /usr/local/bin/rke rke --version
rke config --name cluster.yml
nodes: - address: 10.20.0.35 port: "22" internal_address: 10.20.0.35 role: - controlplane - worker - etcd hostname_override: "" user: rkeuser docker_socket: /var/run/docker.sock ssh_key: "" ssh_key_path: ~/.ssh/id_rsa ssh_cert: "" ssh_cert_path: "" labels: {} taints: [] - address: 10.20.0.37 port: "22" internal_address: 10.20.0.37 role: - worker hostname_override: "" user: rkeuser docker_socket: /var/run/docker.sock ssh_key: "" ssh_key_path: ~/.ssh/id_rsa ssh_cert: "" ssh_cert_path: "" labels: {} taints: [] services: etcd: image: "" : :
rke up --config cluster.yml
因為要下載一些 images 需要等一些時間才會完成, 最後應該可以看到類似以下的訊息
: INFO[0378] [addons] Executing deploy job rke-ingress-controller INFO[0405] [ingress] ingress controller nginx deployed successfully INFO[0405] [addons] Setting up user addons INFO[0405] [addons] no user addons defined INFO[0405] Finished building Kubernetes cluster successfully
$ ls -lt total 4476 -rw-r----- 1 localadmin localadmin 105805 Apr 7 19:18 cluster.rkestate -rw-r----- 1 localadmin localadmin 5381 Apr 7 19:13 kube_config_cluster.yml -rw-r----- 1 localadmin localadmin 5653 Apr 7 19:12 cluster.yml
cp kube_config_cluster.yml ~/.kube/config kubectl get nodes
如果沒問題應該會出現類似以下的訊息
$ kubectl get node NAME STATUS ROLES AGE VERSION 10.20.0.35 Ready controlplane,etcd,worker 7m52s v1.18.17 10.20.0.37 Ready worker 7m47s v1.18.17
rke up --update-only --config cluster.yml
nodes: - address: 10.20.0.35 port: "22" internal_address: 10.20.0.35 role: - controlplane - worker - etcd hostname_override: "" user: rkeuser docker_socket: /var/run/docker.sock ssh_key: "" ssh_key_path: ~/.ssh/id_rsa ssh_cert: "" ssh_cert_path: "" labels: {} taints: [] - address: 10.20.0.36 port: "22" internal_address: 10.20.0.36 role: - worker hostname_override: "" user: rkeuser docker_socket: /var/run/docker.sock ssh_key: "" ssh_key_path: ~/.ssh/id_rsa ssh_cert: "" ssh_cert_path: "" labels: {} taints: [] - address: 10.20.0.37 port: "22" internal_address: 10.20.0.37 role: - worker hostname_override: "" user: rkeuser docker_socket: /var/run/docker.sock ssh_key: "" ssh_key_path: ~/.ssh/id_rsa ssh_cert: "" ssh_cert_path: "" labels: {} taints: [] services: etcd: : :
rke up --update-only --config cluster.yml
rke remove --config cluster.yml