這是本文件的舊版!
使用 rke 安裝 K8s 的程序
- 安裝環境 Ubuntu 20.04.2 LTS x86_64
- 兩個節點 IP : 10.20.0.35 / 10.20.0.37
前置作業
- apt 更新與安裝套件
sudo apt update sudo apt-get install unzip curl software-properties-common snap -y
- 安裝 Docker 19.03.14
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
- 安裝 kubectl
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/
- 關閉 swap
sudo swapoff -a
各主機節點建立與設定 rkeuser 用戶
- 所有節點建立 rkeuser 帳號
sudo useradd -s /bin/bash -d /home/rkeuser/ -m -G sudo rkeuser sudo passwd rkeuser sudo usermod -aG docker rkeuser
- 配置免密登入-master節點-10.20.0.35
- master節點-10.20.0.35 產生公鑰
ssh-keygen -t rsa -C '[email protected]'
- 將公鑰複製到各節點的 rkeuser 用戶內
ssh-copy-id [email protected] ssh-copy-id [email protected]
- 確認所有節點 rkeuser 可以執行 docker 命令
ssh [email protected] docker ps
- 如有啟動 firewall 要開啟 port
- 6443-KubeAPI
- 2379-etcd
- SSH server配置 TCP 轉發
sudo vi /etc/ssh/sshd_config
: AllowTcpForwarding yes :
sudo systemctl reload sshd
安裝 rke 與建立 K8s Cluster
- 下載 rke 1.2.7
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 配置 K8s Cluster 檔
rke config --name cluster.yml
- 檢視與編輯 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: "" : :