# Docker-Rancher-K8s基礎環境部署指南
## 一、環境準備
### 1.1 硬件要求
- **服務器配置**:建議至少2核CPU/4GB內存/50GB磁盤(生產環境需更高配置)
- **操作系統**:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8(本文以Ubuntu 22.04為例)
- **網絡要求**:
- 所有節點間網絡互通
- 開放端口:6443(K8s API)、80/443(Rancher)、2379-2380(etcd)
### 1.2 節點規劃
| 節點類型 | 數量 | 說明 |
|------------|------|-----------------------|
| Master節點 | 1-3 | 運行控制平面組件 |
| Worker節點 | ≥1 | 運行工作負載Pod |
| Rancher節點| 1 | 管理K8s集群(可選) |
## 二、Docker安裝與配置
### 2.1 安裝Docker CE
```bash
# 卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安裝依賴
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
# 添加Docker官方GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 設置穩定版倉庫
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安裝Docker引擎
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 創建配置文件目錄
sudo mkdir -p /etc/docker
# 配置daemon.json(啟用cgroup驅動)
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 重啟Docker服務
sudo systemctl enable docker
sudo systemctl restart docker
# 添加Kubernetes源
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | 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
# 初始化集群(替換<MASTER_IP>為實際IP)
sudo kubeadm init \
--apiserver-advertise-address=<MASTER_IP> \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12
# 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
在Worker節點執行Master初始化后輸出的kubeadm join命令:
kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <HASH>
docker run -d \
--restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
rancher/rancher:latest
https://<SERVER_IP>
docker logs <CONTNER_ID> 2>&1 | grep "Bootstrap Password"
kubectl apply -f https://<RANCHER_URL>/v3/import/<CLUSTER_ID>.yaml
kubectl get nodes
kubectl get pods -A
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc
# 檢查kubelet狀態
systemctl status kubelet
journalctl -xeu kubelet
# 檢查網絡插件
kubectl get pods -n kube-system
# 檢查容器狀態
docker ps -a
docker logs <CONTNER_ID>
# 檢查端口占用
ss -tulnp | grep 443
注:本文檔基于v1.28版本Kubernetes和Rancher 2.7編寫,不同版本可能存在差異。 “`
該文檔包含: - 分步驟的詳細部署流程 - 可直接執行的命令塊 - 表格形式的配置說明 - 常見問題排查方法 - 后續優化建議 總字數約1500字,符合Markdown格式要求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。