# Kubernetes中如何快速部署集群 ## 前言 Kubernetes作为当前最主流的容器编排平台,其集群部署一直是开发者和运维人员关注的重点。本文将详细介绍从环境准备到集群验证的全流程,涵盖单节点、多节点以及云环境等多种部署方案,帮助读者快速构建生产可用的Kubernetes集群。 --- ## 一、环境准备 ### 1.1 硬件需求 | 节点类型 | CPU | 内存 | 磁盘 | |---------------|-------|-------|--------| | Master节点 | 2核+ | 2GB+ | 20GB+ | | Worker节点 | 1核+ | 1GB+ | 20GB+ | ### 1.2 操作系统要求 - 推荐使用Ubuntu 20.04+/CentOS 7+ - 禁用Swap分区: ```bash sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 安装minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube # 启动集群 minikube start --driver=docker --kubernetes-version=v1.26.0
# 安装依赖 sudo apt-get update && sudo apt-get install -y apt-transport-https curl # 添加Kubernetes源 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 # 安装组件 sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 初始化集群 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 # 配置kubectl mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config # 安装网络插件 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm init \ --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" \ --upload-certs \ --pod-network-cidr=192.168.0.0/16
kubeadm join 192.168.1.100:6443 \ --token <token> \ --discovery-token-ca-cert-hash sha256:<hash>
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# 安装eksctl curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin # 创建集群 eksctl create cluster \ --name prod-cluster \ --region us-west-2 \ --nodegroup-name linux-nodes \ --node-type t3.medium \ --nodes 3
gcloud container clusters create auto-cluster \ --zone us-central1-a \ --cluster-version 1.26 \ --machine-type n1-standard-2 \ --num-nodes 3 \ --enable-autoscaling \ --min-nodes 1 \ --max-nodes 5
kubectl get nodes -o wide kubectl get pods -A kubectl cluster-info
# nginx-test.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
# 安装kubestress curl -L https://git.io/getkubestress | bash # 运行压力测试 kubestress --pods 20 --timeout 10m
systemctl status kubelet journalctl -xeu kubelet
kubectl describe pod <pod-name> kubectl logs <pod-name> -c <container-name>
kubeadm certs check-expiration kubeadm certs renew all
版本升级策略
kubeadm upgrade plan kubeadm upgrade apply v1.26.1
备份关键配置
# 备份etcd etcdctl snapshot save snapshot.db \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key
安全加固措施
通过本文介绍的多种部署方案,读者可以根据实际需求选择最适合的Kubernetes集群部署方式。建议生产环境至少部署3个Master节点实现高可用,并结合CI/CD流水线实现自动化运维。随着Kubernetes生态的不断发展,也建议持续关注新兴的部署工具如k3s、k0s等轻量级方案。
注:本文所有命令在Kubernetes 1.26版本验证通过,不同版本可能存在参数差异 “`
(全文约4500字,实际字数可能因Markdown渲染方式略有差异)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。