Ubuntu Kubernetes应用部署流程是什么
导读:Ubuntu 上 Kubernetes 应用部署流程 一 环境准备 操作系统建议使用 Ubuntu 22.04/24.04,节点间建议配置 /etc/hosts 或使用内网 DNS,确保主机名可解析。所有节点执行:更新系统、安装基础工具、...
Ubuntu 上 Kubernetes 应用部署流程
一 环境准备
- 操作系统建议使用 Ubuntu 22.04/24.04,节点间建议配置 /etc/hosts 或使用内网 DNS,确保主机名可解析。所有节点执行:更新系统、安装基础工具、设置主机名。
- 关闭 Swap:执行
sudo swapoff -a并注释 /etc/fstab 中的 swap 行,保证 kubelet 调度稳定。 - 内核与转发:启用 br_netfilter 并设置内核参数
net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1,执行sudo sysctl --system生效。 - 容器运行时:安装并配置 containerd 为 systemd cgroup 驱动;如使用 Docker,需将 Docker 的 cgroup 也设为 systemd 并配置镜像加速。
- 时间同步:建议统一时区并启用 NTP/chrony,避免证书与调度异常。
- 云上或受限网络:按需开放或放通 TCP 6443、2379-2380、10250-10252、UDP 8472 等端口,确保节点与控制平面通信畅通。
二 安装 Kubernetes 组件
- 添加软件源与密钥:导入 Kubernetes APT 公钥,写入源(如 https://packages.cloud.google.com/apt 或国内镜像源),更新索引。
- 安装指定版本组件:安装 kubeadm、kubelet、kubectl(建议固定小版本,如 1.28.x),执行
sudo apt-mark hold kubeadm kubelet kubectl防止意外升级。 - 启动 kubelet:
sudo systemctl enable --now kubelet(此时可能反复重启属正常,待集群初始化后进入稳态)。
三 初始化集群与网络
- 初始化控制平面(主节点):执行
sudo kubeadm init,常用参数包括:--pod-network-cidr:依据所选 CNI 设定(如 Calico 常用 192.168.0.0/16,Flannel 常用 10.244.0.0/16)。--apiserver-advertise-address与(可选)--control-plane-endpoint用于多主或高可用场景。
- 配置 kubeconfig:
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安装 CNI 网络插件:
- Calico:
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yaml - Flannel:
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
- Calico:
- 加入工作节点:使用
kubeadm init输出或kubeadm token create --print-join-command生成的 kubeadm join 命令加入集群。 - 验证:
kubectl get nodes应显示所有节点 Ready。
四 部署示例应用
- 定义 Deployment(示例为 Nginx):
- 副本数:3;镜像:nginx:1.25;端口:80;资源配置:requests cpu=100m/memory=128Mi,limits cpu=200m/memory=256Mi。
- 定义 Service:
- 类型 NodePort,端口 80→80,节点端口如 30080。
- 部署与验证:
kubectl apply -f deployment.yaml与kubectl apply -f service.yamlkubectl get pods -o wide查看分布与状态- 访问
http://< 任意节点IP> :30080应返回 Nginx 欢迎页。
五 运维与常见问题
- 基础运维:
- 指标与扩缩容:部署 Metrics Server 后可执行
kubectl top nodes/pods;创建 HPA:kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=2 --max=5。 - 日志:使用
kubectl logs < pod> -f实时查看;生产可部署 EFK/ Loki 等集中日志方案。
- 指标与扩缩容:部署 Metrics Server 后可执行
- 常见问题快速定位:
- Pod Pending:执行
kubectl describe pod < pod>,常见原因为资源不足或 污点/容忍、节点亲和不匹配。 - Service 不可达:检查 selector 与 Pod 标签是否一致、
kubectl describe service < svc>的 Endpoints 是否为空、是否存在 NetworkPolicy 拦截。
- Pod Pending:执行
- 生产建议:
- 控制平面高可用(多主 + 负载均衡)、持久化存储(PV/PVC/StorageClass)、RBAC 最小权限、NetworkPolicy 白名单、备份与恢复(如 etcd 快照)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kubernetes应用部署流程是什么
本文地址: https://pptw.com/jishu/775754.html
