優化Ubuntu上的Kubernetes(K8s)安裝可以從多個方面進行,包括系統配置、網絡設置、資源管理等。以下是一些關鍵的優化步驟和建議:
更新系統:確保系統包是最新的。
sudo apt-get update
sudo apt-get upgrade
安裝Docker:在所有節點上安裝Docker,這是運行Kubernetes集群的基礎。
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
配置Docker鏡像加速:編輯/etc/docker/daemon.json
文件,添加國內鏡像加速地址。
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重啟Docker服務使配置生效。
sudo systemctl daemon-reload
sudo systemctl restart docker
安裝Kubernetes組件:添加Kubernetes的GPG密鑰和APT源,然后安裝核心組件。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
禁用Swap:臨時禁用并永久禁用Swap分區。
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
加載內核模塊:加載必要的內核模塊,如overlay
和br_netfilter
。
sudo modprobe overlay
sudo modprobe br_netfilter
將上述命令添加到/etc/modules-load.d/k8s.conf
文件中。
設置sysctl參數:啟用IP轉發和網絡功能。
sudo sysctl -w net.bridge.bridge-nf-call-iptables=1
sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=1
sudo sysctl -w net.ipv4.ip_forward=1
將上述設置添加到/etc/sysctl.d/k8s.conf
文件中。
節點配額和內核參數調整:根據節點數量調整資源配置。
# 示例配置
--max-file 1000000
net.ipv4.neigh.default.gc_thresh1 11024
net.ipv4.neigh.default.gc_thresh2 24096
net.ipv4.neigh.default.gc_thresh3 38192
net.netfilter.nf_conntrack_max 10485760
net.core.netdev_max_backlog 10000
net.netfilter.nf_conntrack_tcp_timeout_established 300
net.netfilter.nf_conntrack_buckets 655360
使用高性能網絡插件:如Calico或Cilium。
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
配置CNI插件:在每個節點上配置CNI插件,以確保Pod之間和與外部網絡的通信。
通過上述步驟和建議,您可以顯著提升在Ubuntu上運行的Kubernetes集群的性能和穩定性。