CentOS 7 yum安装 k8s 创建Pod一直处于ContainerCreating状态 问题解决

问题描述

使用CentOS7的 yum 包管理器安装了 Kubernetes 集群,使用 kubectl 创建服务成功后,执行 kubectl get pods,发现AGE虽然在不断增加,但状态始终不变

本文内容

  • 分析问题原因
  • 给出直接解决此问题的方式 (不完美)
  • 给出其他方案

且听我娓娓道来~

问题分析与解决

kubectl 提供了 describe 子命令来输出指定的一个/多个资源的详细信息。

执行 kubectl describe pod mytomcat-9lcq5,查看问题 Pod 的状态信息,输出如下:

[root@kube-master app]# kubectl describe pod mytomcat-9lcq5
Name:		mytomcat-9lcq5
Namespace:	default
Node:		kube-node-2/192.168.87.145
Start Time:	Fri, 17 Apr 2020 15:53:50 +0800
Labels:		app=mytomcat
Status:		Pending
IP:		
Controllers:	ReplicationController/mytomcat
Containers:
  mytomcat:
    Container ID:		
    Image:			tomcat:9-jre8-alpine
    Image ID:			
    Port:			8080/TCP
    State:			Waiting
      Reason:			ContainerCreating
    Ready:			False
    Restart Count:		0
    Volume Mounts:		<none>
    Environment Variables:	<none>
Conditions:
  Type		Status
  Initialized 	True 
  Ready 	False 
  PodScheduled 	True 
No volumes.
QoS Class:	BestEffort
Tolerations:	<none>
Events:
  FirstSeen	LastSeen	Count	From			SubObjectPath	Type		Reason		Message
  ---------	--------	-----	----			-------------	--------	------		-------
  5m		5m		1	{default-scheduler }			Normal		Scheduled	Successfully assigned mytomcat-9lcq5 to kube-node-2
  4m		4m		1	{kubelet kube-node-2}			Wa
### CentOS 7安装 Kubernetes 1.28 的教程 #### 准备工作 为了确保顺利安装 Kubernetes,在开始之前需确认操作系统环境已满足最低需求。对于 CentOS 7 来说,建议更新系统软件包至最新版本并关闭 SELinux 和防火墙服务。 ```bash sudo yum update -y && sudo yum install -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config sudo systemctl stop firewalld sudo systemctl disable firewalld ``` #### 配置 Kubelet Service 文件 创建 `kubelet` 的 systemd service 文件以便于管理 kubelet 进程: ```ini [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=https://kubernetes.io/docs/ Wants=network-online.target After=network-/etc/kubernetes/conf/kubelet.conf ExecStart=/usr/local/bin/kubelet $KUBELET_CONF Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target ``` 此配置文件定义了如何启动和重启 kubelet 以及它依赖哪些其他服务[^1]。 #### 安装 CNI 插件 Calico 或 Flannel ##### 使用 Calico 网络插件 如果选择使用 Calico,则可以按照如下命令下载必要的 YAML 文件并对 IP 地址范围做适当调整: ```bash cd /root mkdir -pv k8s/calico cd k8s/calico wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml sed -i "s|192.168|10.120|" custom-resources.yaml kubectl create -f tigera-operator.yaml kubectl create -f custom-resources.yaml ``` 上述操作会部署 Calico 组件到集群中,并设置 Pod CIDR 范围为 `10.120.x.x`[^2]。 ##### 使用 Flannel 网络插件 (离线方式) 当网络条件不允许在线获取资源时,可以选择预先下载好所需 tarball 并通过本地镜像加载方式进行安装: - 下载两个指定版本的 Flannel tar 包 (`flannel-flannel-cni-plugin-v1.4.1-flannel1-amd64.tar`, `flannel-flannel-v0.25.1-amd64.tar`) 到服务器上。 - 解压这些压缩包并将其中的内容复制到相应位置,通常包括可执行文件、CNI 插件等。 注意:具体路径可能依据实际情况有所不同,请参照官方文档完成剩余步骤[^3]。 #### 启动 Master 和 Worker 节点组件 最后一步是初始化 master 节点并通过加入 token 将 worker 加入集群。这涉及到运行一系列 kubeadm 命令来准备证书、API server 及 etcd 数据库等核心设施。由于这部分内容较为复杂且与实际场景紧密关联,推荐参考官方提供的最新指导手册来进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值