温馨提示×

Debian服务器Kubernetes安装指南

小樊
53
2025-09-30 04:12:58
栏目: 云计算

Debian服务器Kubernetes安装指南

一、安装前准备

1. 硬件要求

  • 至少2核CPU2GB RAM20GB硬盘空间(生产环境建议4核CPU+4GB RAM以上);
  • 所有节点(Master/Worker)需稳定互联网连接

2. 系统设置

  • 更新系统
    sudo apt update && sudo apt upgrade -y
    
  • 关闭Swap分区(Kubelet要求):
    sudo swapoff -a
    sudo sed -i '/ swap / s/1/g' /etc/fstab  # 永久禁用
    
  • 配置主机名与hosts文件(所有节点):
    sudo hostnamectl set-hostname <节点名称>  # 如k8s-master、k8s-node1
    echo "<节点IP> <节点名称>" | sudo tee -a /etc/hosts  # 示例:192.168.1.100 k8s-master
    
  • 关闭防火墙(测试环境)或放行必要端口(生产环境):
    Kubernetes常用端口:6443(API Server)、10250(kubelet)、10255(只读kubelet)。

二、安装Docker与Containerd

Kubernetes依赖容器运行时,推荐使用Docker(需兼容版本):

# 安装Docker依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# 添加Docker APT源
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动Docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

配置Containerd(Kubeadm默认使用):

sudo mkdir -p /etc/containerd
sudo tee /etc/containerd/config.toml <<EOF
[plugins."io.containerd.grpc.v1.containerd"]
  suspend_timeout = 2h
[plugins."io.containerd.grpc.v1.containerd.default_runtime"]
  runtime_type = "runc"
  runtime_root = "/run/containerd/runc"
EOF
sudo systemctl restart containerd

三、安装Kubernetes组件

在所有节点上执行:

# 添加Kubernetes APT源
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 安装kubelet、kubeadm、kubectl
sudo apt update
sudo apt install -y kubelet kubeadm kubectl

# 锁定组件版本(避免自动升级)
sudo apt-mark hold kubelet kubeadm kubectl

四、初始化Master节点

在Master节点上执行(选择Pod网络CIDR,如Flannel需10.244.0.0/16):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

初始化完成后,会输出加入Worker节点的命令(含Token和CA证书哈希),需保存备用。

配置kubectl

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

五、安装网络插件

Kubernetes需要网络插件实现Pod间通信,推荐Flannel(轻量易用):

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

验证网络插件是否运行:

kubectl get pods -n kube-system

六、加入Worker节点

在Worker节点上执行Master节点初始化时输出的kubeadm join命令(示例):

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:123456789abcdef

七、验证集群状态

在Master节点上执行:

# 查看节点状态(所有节点应为Ready)
kubectl get nodes

# 查看集群信息
kubectl cluster-info

# 部署测试应用(可选)
kubectl create deployment nginx --image=nginx --replicas=2
kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80
kubectl get pods -o wide  # 查看Pod分布

通过任意节点IP加NodePort(如http://<节点IP>:31743)访问Nginx,验证集群功能。

注意事项

  • 时间同步:所有节点需安装NTP服务(如sudo apt install ntp),避免时间偏差导致集群异常;
  • 生产环境优化:建议使用更稳定的网络配置(如固定IP、自定义DNS)、防火墙规则(仅放行必要端口);
  • 组件升级:定期通过apt update && apt upgrade更新Kubernetes及相关组件,确保安全性。

0