本文將介紹如何安裝k8s到Ubuntu,在安裝前請先準備三個虛擬機,你可以透過virtualbox進行安裝,以下規格可以參考:
Server Type | Hostname | Specs |
---|---|---|
Master | k8s-master01 | 4GB Ram, 2vcpus |
Worker | k8s-worker01 | 4GB Ram, 2vcpus |
Worker | k8s-worker02 | 4GB Ram, 2vcpus |
安裝步驟
- 針對Ubuntu進行配置
- 安裝docker
- 安裝kubeadm、kubectl以及kubelet
- 建立並初始化 master 節點
- 建立並將 worker 節點加入
針對Ubuntu進行配置
先關掉 swap
1
2sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
接著啟用內核模組與配置sysctl
1
2
3
4
5
6
7
8
9
10
11
12
13Enable kernel modules
sudo modprobe overlay
sudo modprobe br_netfilter
Add some settings to sysctl
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
Reload sysctl
sudo sysctl --system
更新一下,並重新開機
1
2
3sudo apt update
sudo apt -y full-upgrade
[ -f /var/run/reboot-required ] && sudo reboot -f
install docker 並且修改一下cgroups
cgroups是啥呢,你可以把它理解成一個進程處理隔離工具,docker就是用它来實現容器的隔離的。docker 默認使用的是cgroupfs,
而 k8s 也用到了一个進程隔離工具systemd,如果使用兩個隔離工具的話可能會引起異常,所以必須要把 docker 的也改成systemd。
1 | 更新並安裝相關所需套件 |
install kubelet, kubeadm and kubectl
為每一個節點都安裝 kubelet, kubeadm and kubectl
1 | sudo apt -y install curl apt-transport-https |
建立並初始化master節點
1 | 初始化 |
--apiserver-advertise-address: k8s 中的主要節點的apiserver的位置,填自己的節點 ip
--pod-network-cidr: k8s內部的網路
這時候你會看到類似以下圖片的結果,記得把最後一句join記下來
建立並將 worker 節點加入
ssh 進入worker,並執行剛剛的join語法。
確認
1 | kubectl get nodes |
參考連結
第一千零一篇的 cgroups 介紹
Install Kubernetes Cluster on Ubuntu 20.04 with kubeadm