K8s在centos7安装及kubectl教程
Linux命令
K8s在centos7安装及kubectl教程
2025-04-16 00:04
以下是关于在CentOS 7系统上安装Kubernetes(K8s)及kubectl的详细教程,内容经过严格验证和优化,确保步骤准确且易于操作。 一、环境准备
以下是关于在CentOS 7系统上安装Kubernetes(K8s)及kubectl的详细教程,内容经过严格验证和优化,确保步骤准确且易于操作。
一、环境准备
1.1 系统要求
- 操作系统:CentOS 7(64位)
- 内核版本:≥3.10(默认满足)
- 关闭防火墙与SELinux:
# 关闭防火墙systemctl stop firewalld && systemctl disable firewalld# 临时关闭SELinux(永久修改需编辑/etc/selinux/config)setenforce 0
1.2 关闭Swap
Kubernetes要求关闭Swap分区:
swapoff -a # 临时关闭
# 永久关闭:注释/etc/fstab中swap行
1.3 配置容器运行时(以containerd为例)
# 安装containerd
yum install -y containerd
# 配置containerd
mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml
# 启动并设置开机启动
systemctl enable --now containerd
二、安装Kubernetes组件
2.1 添加Kubernetes官方仓库
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
2.2 安装kubeadm、kubelet和kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet
2.3 配置内核参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
三、初始化Kubernetes集群
3.1 使用kubeadm初始化主节点
kubeadm init --pod-network-cidr=10.244.0.0/16
- 参数说明:
--pod-network-cidr
:指定Pod网络段(需与后续网络插件一致)。
3.2 配置kubectl访问权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.3 安装Pod网络插件(以Flannel为例)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3.4 验证集群状态
kubectl get nodes
kubectl get pods --all-namespaces
- 预期输出:所有节点状态为
Ready
,核心组件(如kube-apiserver、kube-proxy等)运行正常。
四、扩展集群(可选)
4.1 加入Worker节点
在主节点执行 kubeadm token create --print-join-command
获取加入命令,复制到Worker节点执行即可。
五、kubectl常用命令示例
# 查看集群信息
kubectl cluster-info
# 查看节点资源使用情况
kubectl top nodes
# 部署示例应用(如Nginx)
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get services
六、常见问题排查
- 节点状态异常:
- 检查kubelet日志:
journalctl -u kubelet -f
- 确保网络插件已正确安装。
- 检查kubelet日志:
- Pod无法调度:
- 检查节点标签:
kubectl describe node <node-name>
- 确保节点处于
Ready
状态。
- 检查节点标签:
- 防火墙或路由问题:
- 确保所有节点间端口(如6443、10250)互通。
七、更新与维护
- 升级Kubernetes版本:
yum update kubeadm kubelet kubectl kubeadm upgrade plan kubeadm upgrade apply <target-version>
- 备份集群配置:
kubeadm config images list > backup_images.txt
通过以上步骤,您已完成CentOS 7上Kubernetes集群的部署及kubectl的配置。如需深入学习,建议参考官方文档或社区教程进一步优化集群配置。✨
标签:
- K8s
- centos7
- kubectl