Debian环境下如何管理Kubernetes集群
导读:Debian环境下Kubernetes集群管理实操指南 一 环境准备与组件安装 系统要求与基础设置 建议使用Debian 12,节点间网络互通,主机名唯一,关闭Swap:sudo swapoff -a 并注释 /etc/fstab 中的...
Debian环境下Kubernetes集群管理实操指南
一 环境准备与组件安装
- 系统要求与基础设置
- 建议使用Debian 12,节点间网络互通,主机名唯一,关闭Swap:sudo swapoff -a 并注释 /etc/fstab 中的 swap 行。
- 加载内核模块并开启转发(容器网络依赖):
- sudo modprobe overlay & & sudo modprobe br_netfilter
- echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/containerd.conf
- echo -e “net.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1” | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
- sudo sysctl --system
- 容器运行时
- 安装并启用containerd(推荐)或 Docker(亦可)。以 containerd 为例:
- sudo apt update & & sudo apt install -y containerd
- sudo systemctl enable --now containerd
- 安装并启用containerd(推荐)或 Docker(亦可)。以 containerd 为例:
- 安装 kubeadm/kubelet/kubectl
- 添加 Kubernetes APT 源并安装组件(示例为 Debian 12 使用 xenial 仓库名,实际以仓库提供为准):
- sudo apt update & & sudo apt install -y apt-transport-https ca-certificates curl
- curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/kubernetes-archive-keyring.gpg > /dev/null
- echo “deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list
- sudo apt update & & sudo apt install -y kubelet kubeadm kubectl
- sudo apt-mark hold kubelet kubeadm kubectl
- sudo systemctl enable --now kubelet
- 添加 Kubernetes APT 源并安装组件(示例为 Debian 12 使用 xenial 仓库名,实际以仓库提供为准):
二 集群初始化与网络插件
- 初始化控制平面
- 单控制面示例:sudo kubeadm init --pod-network-cidr=10.244.0.0/16
- 高可用或指定端点示例:sudo kubeadm init --control-plane-endpoint MASTER_IP:6443 --upload-certs --pod-network-cidr 10.244.0.0/16
- 初始化完成后按提示保存“kubeadm join …”命令用于工作节点接入。
- 配置 kubectl
- mkdir -p $HOME/.kube
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装 CNI 网络插件(二选一)
- Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Flannel:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 验证
- kubectl get nodes
- kubectl get pods -A
三 日常运维与故障排查
- 资源查看与诊断
- 集群概览:kubectl cluster-info
- 节点与系统组件:kubectl get nodes;kubectl get pods -n kube-system -o wide
- 详细信息与事件:kubectl describe pod -n
- 日志与进入容器:kubectl logs -f [-c ];kubectl exec -it – /bin/bash
- 端口转发与临时访问:kubectl port-forward 8080:80
- 应用生命周期与发布
- 创建与暴露:kubectl create deployment nginx --image=nginx --replicas=2;kubectl expose deployment nginx --type=NodePort --port=80 --node-port=31000
- 滚动更新与回滚:kubectl set image deployment/nginx nginx=nginx:1.25;kubectl rollout status deployment/nginx;kubectl rollout undo deployment/nginx
- 扩缩容:kubectl scale deployment nginx --replicas=3
- 资源清理
- 按标签删除:kubectl delete pods,services -l app=myapp
- 强制删除异常 Pod(谨慎):kubectl delete pod --force --grace-period=0
四 节点管理与集群升级
- 节点管理
- 加入工作节点:使用 kubeadm init 输出的 kubeadm join 命令在各 Worker 上执行。
- 移除节点:在主节点执行 kubeadm reset(谨慎,会清理本机 K8s 状态),随后在集群中删除 Node 对象:kubectl delete node 。
- 版本升级
- 控制平面与节点升级流程建议遵循“先主后从、逐批升级”的原则,使用 kubeadm 执行升级计划与执行:
- 检查可升级版本与计划:kubeadm upgrade plan
- 升级控制平面:kubeadm upgrade apply v
- 升级 kubelet/kubectl 并重启:sudo apt install -y kubelet= kubectl= & & sudo systemctl restart kubelet
- 逐台升级工作节点(drain → 升级 → uncordon):kubectl drain --ignore-daemonsets;在节点上升级 kubelet/kubectl 并重启;kubectl uncordon
- 升级前务必备份关键资源与 etcd 数据,并在测试环境验证。
- 控制平面与节点升级流程建议遵循“先主后从、逐批升级”的原则,使用 kubeadm 执行升级计划与执行:
五 安全加固与可观测性建议
- 安全加固
- 启用 RBAC 最小权限;为 kubeconfig 设置严格权限(600);限制 kubelet 只读访问;开启 Pod Security 或 PSP/OPA Gatekeeper;对外暴露服务优先使用 Service 类型(如 LoadBalancer/NodePort 结合 Ingress),避免直接暴露 API Server。
- 可观测性
- 监控与告警:部署 Prometheus + Grafana 采集节点/Pod 指标与 APIServer/Controller 等关键组件指标。
- 日志:集中化日志(如 EFK/ELK 或 Loki+Promtail)收集容器与系统日志,便于审计与故障定位。
- 可视化与多集群
- 可使用 Rancher 或 KubeSphere 进行多集群管理、应用商店、CI/CD 集成与统一监控日志视图。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian环境下如何管理Kubernetes集群
本文地址: https://pptw.com/jishu/755899.html
