ubuntu k8s 單節點快速安裝


ubuntu k8s 單節點快速安裝

很早以前記錄過 ubuntu 上 k8s 的單節點安裝,現在更新一下 ubuntu 18.04 上 k8s 單節點的快速安裝,方便參考。

安裝過程

安裝 docker

curl -fsSL https://get.docker.com | sudo sh

使用 ubuntu 18.04,先使用 aliyun 的 k8s 源安裝 kubeadm 和相關命令行工具

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl

systemctl enable kubelet

對於 ubuntu ,需要修改 docker 的 cgroup driver 選項為 systemd,與 k8s 保持一致,並修改 registry-mirror 加速下載,可以用 aliyun 提供的鏡像服務,以下內容加入到 /etc/docker/daemon.json

{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"]
}

重啟 docker

systemctl restart docker

直接使用阿里雲上提供的 k8s 鏡像 (這里指定的網絡與后續使用的網絡插件的配置保持一致)

kubeadm init --image-repository registry.aliyuncs.com/google_containers \
    --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

按照提示把 k8s 配置復制到用戶目錄下

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看當前節點狀態,為 notready

kubectl get nodes

需要安裝 pod 網絡插件 flannel(可用 wget 把 github 把文件下載到本地)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

(安裝時需要下載鏡像 quay.io/coreos/flannel:v0.11.0-amd64,具體的鏡像見 kube-flannel.yml 文件,如果下載失敗則到 quay-mirror.qiniu.com 下載,並重新打回 tag)

查看節點狀態,為 ready,查看集群狀態,各服務正常

kubectl get cs

允許 master 部署 pod

kubectl taint nodes --all node-role.kubernetes.io/master-

查看系統狀態

kubectl get pods -n kube-system

部署 nginx 測試

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=8080 --type=NodePort
kubectl get pods,svc

kubectl 命令補全(bash)

安裝 bash-completion

apt install bash-completion

然后寫入到 bashrc

echo "source <(kubectl completion bash)" >> ~/.bashrc

注意,在 root 下的命令補全可能被注釋了,需要打開,在 ~/.bashrc ,確保以下內容沒被注釋

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

重置

直接使用 kubeadm reset 重置環境,可看到所有容器已清理 docker ps -a

加入 worker 節點

worker 節點安裝 k8s 組件

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl

加入當前節點作為 worker,需要到 k8s 的token 和證書的 sha256 ,在 kubeadm init 后提示的輸出里面有對應的 token 和證書的 sha256 ,但是 token 有效期為 24 小時,超時需要重新創建

kubeadm token list  # 查看 token
kubeadm token create --print-join-command   # 創建 token 並打印 join 命令

或通過 openssl 獲得證書的 sha256

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

加入到集群

kubeadm join 172.21.0.9:6443 --token <token> \
    --discovery-token-ca-cert-hash sha256:<證書sha256> 

重裝后 kubectl 命令的 x509 錯誤

由用戶目錄下的配置文件引起的,需要刪除 ~/.kube/config 后,重新把配置復制到用戶目錄下即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM