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

六、常见问题排查

  1. 节点状态异常
    • 检查kubelet日志:journalctl -u kubelet -f
    • 确保网络插件已正确安装。
  2. Pod无法调度
    • 检查节点标签:kubectl describe node <node-name>
    • 确保节点处于 Ready状态。
  3. 防火墙或路由问题
    • 确保所有节点间端口(如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