首页主机资讯Ubuntu Kubernetes应用部署流程是什么

Ubuntu Kubernetes应用部署流程是什么

时间2025-12-19 01:26:04发布访客分类主机资讯浏览1414
导读: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=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1,执行 sudo sysctl --system 生效。
  • 容器运行时:安装并配置 containerdsystemd 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/16Flannel 常用 10.244.0.0/16)。
    • --apiserver-advertise-address 与(可选)--control-plane-endpoint 用于多主或高可用场景。
  • 配置 kubeconfig:
    • 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://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
  • 加入工作节点:使用 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.yamlkubectl apply -f service.yaml
    • kubectl get pods -o wide 查看分布与状态
    • 访问 http://< 任意节点IP> :30080 应返回 Nginx 欢迎页。

五 运维与常见问题

  • 基础运维:
    • 指标与扩缩容:部署 Metrics Server 后可执行 kubectl top nodes/pods;创建 HPAkubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=2 --max=5
    • 日志:使用 kubectl logs < pod> -f 实时查看;生产可部署 EFK/ Loki 等集中日志方案。
  • 常见问题快速定位:
    • Pod Pending:执行 kubectl describe pod < pod> ,常见原因为资源不足或 污点/容忍节点亲和不匹配。
    • Service 不可达:检查 selector 与 Pod 标签是否一致、kubectl describe service < svc> Endpoints 是否为空、是否存在 NetworkPolicy 拦截。
  • 生产建议:
    • 控制平面高可用(多主 + 负载均衡)、持久化存储(PV/PVC/StorageClass)、RBAC 最小权限、NetworkPolicy 白名单、备份与恢复(如 etcd 快照)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Kubernetes应用部署流程是什么
本文地址: https://pptw.com/jishu/775754.html
Ubuntu Kubernetes版本兼容性问题如何解决 Kubernetes日志在Ubuntu上如何查看

游客 回复需填写必要信息