云计算(一)K8S初始化问题

这篇具有很好参考价值的文章主要介绍了云计算(一)K8S初始化问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

        作者公司使用的是K8S底层做云计算,这天有个节点发布的时候卡住了,解决方式分为长短期。       

        作者跟运维做了一些分析讨论和解决方案,涉及到许多K8S相关的知识,有兴趣的同学可以看看这个原理分析过程。

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

二、云计算简介

    云计算是一种基于互联网的计算模式,它通过将计算资源和服务提供给用户,以按需、弹性和可扩展的方式满足用户的需求。
    传统的计算模式通常需要用户购买、配置和维护自己的硬件和软件基础设施,而云计算则将这些计算资源和服务集中在云服务提供商的数据中心中,用户可以通过互联网按需使用这些资源和服务。  

    云计算底层的进化主要经历了虚拟机到Docker到Kubernetes

1、虚拟机(VM)

    虚拟机是一种基于软件的虚拟化技术,它可以将一台物理计算机分割成多个虚拟计算机,每个虚拟计算机都可以运行独立的操作系统和应用程序。虚拟机技术可以实现硬件资源的共享和隔离,提高资源利用率和安全性。
2、Docker

    Docker是一种基于容器的虚拟化技术,它可以将应用程序及其依赖项打包为一个独立的容器,使得应用程序可以在任何环境中运行,而无需关心底层的操作系统和硬件。Docker技术可以实现应用程序的快速部署、可移植性和隔离性。
3、Kubernetes(K8s)

    Kubernetes是一种基于容器编排的平台,它可以自动化地管理和调度容器化的应用程序,提供了弹性伸缩、负载均衡、服务发现等功能。Kubernetes技术可以实现应用程序的高可用性、弹性扩展和自动化运维。

    云计算从虚拟机到Docker到Kubernetes的过程,可以看作是从基于硬件的虚拟化技术向基于容器的虚拟化技术和容器编排平台的演进。这种演进使得云计算更加灵活、高效和可扩展,为应用程序的开发、部署和运维带来了更多的便利和优势。

 三、分析

        首先是分析目前节点的状态,可以看出不属于以下几种状态,说明节点处于一种前置未完成的初始化状态。

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

        那么k8s在pending之前需要等什么呢,这里能看出前置节奏还是挺多的,比如需要提供cri准备容器所有的参数

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算 envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

         那么从参数方向入手先尝试排查,一般自带参数没必要排查,不太可能是调度系统本身拉取参数失败,因此向运维询问他们使用以下哪种方式挂载了额外的参数文件,这个参数文件又是做什么使用的。

        运维内部进行了沟通,运维在istio的enovy中做了一些网关流量处理,参数是通过configmap方式挂载的。这里和报错信息显示挂载envoy的配置文件失败一致。

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

         有了具体方向就要查为什么会产生这样的错误了,按说cm作为业界常用的配置文件方式不应该有这种问题,让运维把内核日志和k8s日志考了一份,都能看出sysytemd挂载失败,所以节点一直在等待systemd挂载成功

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

         再看之前的日志,这个问题出现不是一两天了,在k8s、cri的社区都有人提出issue,但是最终都是要升级版本Check the Systemd is alive in kubelet · Issue #110763 · kubernetes/kubernetes · GitHub 

https://github.com/cri-o/cri-o/issues/3808

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

四、解决 

        1、重建,临时做法

        2、升级,长期耗时还要调研

        3、探测,这边作者分析了一下为什么重建就能解决,调度到其他宿主机上去了,那么对于有问题的宿主机是不是可以进行探测,然后设置调度算法规则过滤掉,在《深入理解k8s》中提到的第三种调度规则就是针对物理机的,那么可以更新node的Taint,把有问题的宿主机过滤掉

envoyproxy/envoy:latest 无法拉取,K8S,Linux,kubernetes,istio,运维,云计算

五、总结

        云环境下的组件非常之多,随时有版本不对应或者升级解决bug的情况,这是非常坑的事情,碰到问题就要定位,最后就是升级。

        但是做好探测,利用好k8s的调度规则还是可以提前规避掉许多问题的。文章来源地址https://www.toymoban.com/news/detail-767410.html

到了这里,关于云计算(一)K8S初始化问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S集群重新初始化--详细过程

    在引导k8s集群的过程时可能因为这个或那个的原因导致需要重新引导集群 。 下面整理了我在实际工作中初始化k8s集群的详细过程。 k8s环境部署总览 ip地址 类型 操作系统 服务配置 192.168.162.31 Master01 Centos7.6 2核CPU 2G内存 20G硬盘 192.168.162.41 node1 Centos7.6 2核CPU 2G内存 20G硬盘 192

    2024年02月02日
    浏览(49)
  • Rancher部署k8s集群测试安装nginx(节点重新初始化方法,亲测)

    一、安装前准备工作 计算机 机器名 IP地址 部署内容 rancher 172.16.5.221 rancher k8smaster 172.16.5.222 Control Plane, Etcd k8sworker01 172.16.5.223 worker k8sworker02 172.16.5.224 worker k8sworker03 172.16.5.225 worker 需在每个节点都进行操作,可以使用xshell工具分屏进行批量操作。 升级linux内核 时间同步 Hos

    2024年01月20日
    浏览(51)
  • 通过containerd部署k8s集群环境及初始化时部分报错解决

    目录 一.基础环境配置(每个节点都做) 1.hosts解析 2.防火墙和selinux 3.安装基本软件并配置时间同步 4.禁用swap分区 5.更改内核参数 6.配置ipvs 7.k8s下载 (1)配置镜像下载相关软件 (2)配置kubelet上的cgroup 二.下载containerd(每个节点都做) 1.下载基本软件 2.添加软件仓库信息 3.更

    2024年02月07日
    浏览(48)
  • 云原生之深入解析如何使用Vagrant Kubespray快速初始化K8S集群

    Vagrant 是一款用于构建及配置虚拟开发环境的软件,采用 Ruby 编写,主要以命令行方式运行。其主要使用 Oracle VirtualBox 提供虚拟化系统,与 Chef,Salt,Puppet 等环境配置管理软件搭配使用,可以实现快速搭建虚拟开发环境。 Kubespray 是利用 Ansible 工具,通过 SSH 协议批量让指定

    2024年02月15日
    浏览(48)
  • 解决K8s安装中节点初始化时 [kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ 问题.

    问题描述: 安装K8s时,在节点初始化过程中出现[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp 127.0.0.1:10248: connect: connection refused.报错。 解决方法: 1、驱动问题,即docker的驱动与kubelet 驱动不一致 2、1

    2024年02月16日
    浏览(52)
  • [Kubernetes[K8S]集群:master主节点初始化]:通过Calico和Coredns网络插件方式安装

    主节点:安装coredns - init初始化 主节点(此时还没有安装calico) 从节点:基于主节点生成join命令加入集群 主节点:安装calico:apply 生成pod,此时没有调整yaml网卡 coredns 和calico pod 运行成功 但是 calico-node-cl8f2 运行失败 查看 解决链接 因为之前写过一篇,calico一直异常,步骤

    2024年04月15日
    浏览(53)
  • k8s初始化报错:[ERROR CRI]: container runtime is not running(已解决)

    如有错误,敬请谅解! 此文章仅为本人学习笔记,仅供参考,如有冒犯,请联系作者删除!!          在网上找了好几天解决方案,大部分都是下述方案:         但是当我们尝试之后仍无法解决问题。 如有错误,请联系作者删除 并恳请同行朋友予以斧正,万分感谢!

    2024年02月07日
    浏览(53)
  • k8s初始化报错[kubelet-check] Initial timeout of 40s passed.

    使用kubeadm进行k8s部署,在初始化的时候,遇到如下 一直卡在了[kubelet-check] Initial timeout of 40s passed.,查看kubelet日志 就出现这个错误,我几个node的IP地址检查过好多遍也没问题 上网找了很多方法都解决不了 查了下资料k8s 已经弃用了docker了,如果安装的kubelet kubeadm kubectl 是V

    2024年02月17日
    浏览(49)
  • 记Kubernetes(k8s)初始化报错:“Error getting node“ err=“node \“k8s-master\“ not found“

    💖The Begin💖点点关注,收藏不迷路💖 \\\"Error getting node\\\" err=\\\"node \\\"k8s-master\\\" not found\\\" 查看日志报错: [root@k8s-master ~]# journalctl -u kubelet 1、操作系统centos7.9 2、docker 版本检查 3、kubelet 版本检查 查找资料: Kubernetes在v1.24版本之后正式放弃了对Docker的支持。这意味着Kubernetes的官方

    2024年04月14日
    浏览(50)
  • 如果遇见k8s初始化报错:It seems like the kubelet isn‘t running or healthy.

    报错命令如下: 其解决方法: 进入docker配置文件: 添加: #这里需要注意的这里是字典,然后需要在配置前面一句加上逗号 最后重启docker和 然后重新初始化: 我这里重新初始化再一次报错 报错主要代码: 报错全部内容 : 我一看应该是初始化阿里源有个地方不对,通过摸索

    2024年02月03日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包