温馨提示×

linux k8s如何部署

小樊
41
2026-10-27 21:12:40
栏目: 智能运维

下面我按从零到可运行的思路,给你一个Linux + Kubernetes(k8s)部署的实用指南,适合新手也适合生产参考。


一、部署前准备(Linux 环境)

1. 系统要求

  • Linux(推荐 CentOS 7/8、Ubuntu 20.04/22.04)
  • 2核+ CPU、2G+ 内存(生产建议 4G+)
  • 多台机器(Master + Worker)

2. 基础设置(所有节点)

# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

# 关闭防火墙(测试环境)
systemctl stop firewalld
systemctl disable firewalld

# 设置主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1

# 配置 hosts
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
EOF

二、安装容器运行时(Docker 或 containerd)

推荐:containerd(K8s 官方推荐)

yum install -y containerd
systemctl enable --now containerd

或 Docker:

yum install -y docker
systemctl enable --now docker

三、安装 Kubernetes 组件

1. 添加 K8s 源(CentOS 示例)

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF

2. 安装 kubelet / kubeadm / kubectl

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

四、使用 kubeadm 部署集群(最简单方式)

1. Master 节点初始化

kubeadm init \
  --apiserver-advertise-address=192.168.1.10 \
  --pod-network-cidr=10.244.0.0/16

成功后执行:

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

2. Worker 节点加入

在 Master 初始化后会输出类似:

kubeadm join 192.168.1.10:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

在 Node 上执行即可。


五、安装网络插件(必须)

常用:Flannel

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

检查:

kubectl get nodes
kubectl get pods -n kube-system

六、部署一个测试应用

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc

浏览器访问:

http://节点IP:NodePort

七、生产建议(重要)

  • 使用 containerd 而非 Docker
  • Master 至少 3 节点(高可用)
  • 使用 Calico / Cilium 网络
  • 使用 Helm 管理应用
  • 使用 Ingress + 域名
  • 监控:Prometheus + Grafana

八、常见部署方式对比

方式 适合场景
kubeadm 学习 / 中小集群
k3s 边缘 / 单机
Rancher 多集群管理
云厂商托管 生产首选

如果你愿意,我可以:

  • 给你 一键脚本
  • 教你 k3s 轻量部署
  • 帮你 写 YAML / Helm
  • 按你的 服务器数量定制方案

你现在是 学习用还是生产用?几台机器?

0 踩