CentOS 上 Kubernetes 容器编排实用技巧
一 环境准备与内核优化
sudo setenforce 0 并修改 /etc/selinux/config 为 SELINUX=disabled。sudo swapoff -a 并在 /etc/fstab 注释 swap 行。sudo modprobe br_netfilterecho '1' | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables 与 ...ip6tablesecho 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.d/k8s.confsudo sysctl --systemsudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && sudo yum install -y containerd.iosudo mkdir -p /etc/containerd && containerd config default | sudo tee /etc/containerd/config.tomlSystemdCgroup = true 并重启:sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml && sudo systemctl enable --now containerdcat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOFsudo yum install -y kubelet kubeadm kubectl && sudo systemctl enable --now kubelet二 集群初始化与网络插件
sudo kubeadm init --apiserver-advertise-address <MASTER_IP> --pod-network-cidr=10.244.0.0/16mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/configkubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yamlkubeadm token create --print-join-commandsudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>kubectl get nodes 与 kubectl get pods -A,确保 Ready 与 Running。三 编排常用操作与自动化
kubectl create deployment nginx --image=nginx:latest --replicas=3kubectl expose deployment nginx --port=80 --type=NodePortkubectl create configmap myapp-config --from-literal=key=valuekubectl create secret generic db-secret --from-literal=password=xxxresources.requests.cpu)。kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=10kubectl set image deployment/nginx nginx=nginx:1.25kubectl rollout status deployment/nginx 与 kubectl rollout undo deployment/nginx四 高可用与访问控制
五 排错与性能优化清单
kubectl get nodes -o wide、kubectl describe node <node>、journalctl -u kubelet -xekubectl get pods -A -o wide、kubectl describe pod <pod> -n <ns>、kubectl logs <pod> -n <ns>kube-flannel.yml/calico.yaml 是否成功、Pod 网段是否冲突。SystemdCgroup=true、镜像拉取无阻塞。