![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
k8s
文章平均质量分 88
力哥讲技术
空杯心态!
行动是绝望的解药!
展开
-
揭秘K8s Pod安全:从SCC的实践到现在的PSA的全面解析
对于和 containerd 类似,通过 Linux namespace 和 Cgroup 实现的一类 容器技术,本质上,容器就是 宿主节点的一个进程,出于安全考虑,最小权限原则,在生产中,很少使用 Root 来运行一些业务进程,即很少通过 根用户 来运行相关容器。避免 特权升级,容器逃逸,以及利用不必要权限来增加意外操作或者恶意行为。原创 2024-04-28 15:59:04 · 1069 阅读 · 0 评论 -
从k8s当中学习go cli脚手架开发利器-cobra
在Run()在设定了一系列的参数信息后,创建了cmd对象,并执行cmd对象的Execute(),这里的cmd对象就是一个cobra命令对象,而Execute是cobra提供执行命令的方法,cobra内部使用pflag库,通过设置 pflag 属性,可以对 cobra 的运行产生作用。cobra对象如何生成的,是我们需要关心的,**NewKubeadmCommand(os.Stdin, os.Stdout, os.Stderr)**的实现在cmd/kubeadm/app/cmd/cmd.go。原创 2024-01-23 18:38:29 · 1246 阅读 · 0 评论 -
Kubernetes 配置最佳实践笔记-批注版
Deployment 中描述了对象的期望状态,如果对 spec 的更改被应用了话,Deployment controller 会以。对于新的应用,推荐通过服务的 DNS 名字来访问(而不是通过环境变量)。,当该标签的镜像进行了更新,kubelet 也不会拉取该镜像。,只需要在它的 label selector 中简单的省略发布相关的 label。的 Pod(用来指定暴露在主机上的端口号)。这样当需要的时候能够快速回滚,必要的时候也可以快速的创建集群。这是一个很有用的方式,帮你在一个隔离的环境中调试之前的。原创 2023-11-06 09:27:06 · 199 阅读 · 0 评论 -
使用 skopeo 批量同步 helm chart 依赖镜像
因为配置相对复杂和麻烦,不如直接用一个列表文本,每行代表一个镜像,通过脚本读取每一行分别进行同步,这样更简单。同步镜像时,不管是源和目的,涉及到私有镜像,都需要先登录,不然同步会报错。即可将所有镜像一键同步到目标仓库中,中途如果失败会一直重试直到成功。是一个开源的容器镜像搬运工具,比较通用,各种镜像仓库都支持。然后输入用户名密码即可。原创 2023-08-31 08:45:44 · 365 阅读 · 0 评论 -
57道K8S面试题,呕心沥血整理并附答案,赶紧收藏!
Kubernetes是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它的主要目标是简化容器化应用的部署和管理,并提供弹性、可靠的应用程序编排。Pod是Kubernetes的最小调度和部署单元。它是一个包含一个或多个容器的逻辑主机,这些容器共享网络和存储资源,并且在同一主机上共享生命周期。ReplicaSet是Kubernetes的控制器之一,用于确保在集群中运行指定数量的Pod副本。如果Pod的数量少于指定的副本数,ReplicaSet将创建新的Pod副本;原创 2023-07-25 10:26:30 · 20983 阅读 · 0 评论 -
2023年基准Kubernetes报告:6个K8s可靠性失误
云计算日益成为组织构建应用程序和服务的首选目的地。尽管一年来经济不确定性的头条新闻主要集中在通货膨胀增长和银行动荡方面,但大多数组织预计今年的云使用和支出将与计划的相同(45%),或高于计划的(45%)。Flexera公司2023年云现状报告中的新数据显示,。无论在支出方面的计划如何,许多组织都在寻找方法来控制高昂的云成本,同时确保Kubernetes工作负载的可靠性。但是,将成本尽可能降低并不意味着您不需要确保平台和服务的用户满意度。原创 2023-07-25 09:40:08 · 710 阅读 · 0 评论 -
Kubectl运维脚本核心命令jsonpath的使用详解
Kubectl 支持 JSONPath 模板。JSONPath 模板由 {} 包起来的 JSONPath 表达式组成。Kubectl 使用 JSONPath 表达式来过滤 JSON 对象中的特定字段并格式化输出。使用双引号将 JSONPath 表达式内的文本引起来。使用rangeend运算符来迭代列表。使用负片索引后退列表。负索引不会"环绕"列表,并且只要就有效。函数描述示例结果text纯文本当前对象{@}与输入相同. or []子运算符List..递归下降。原创 2023-07-14 10:23:35 · 1313 阅读 · 0 评论 -
10 分钟理解微服务、容器和 Kubernetes及其关系
什么是微服务?你应该使用微服务吗?微服务与容器和 Kubernetes 有什么关系?如果这些事情在您的日常生活中不断出现,并且您需要在 10 分钟内进行概述,那么这篇博文适合您。从根本上讲,微服务只是一个运行在服务器或虚拟计算实例上并响应网络请求的计算机程序。这与典型的 Rails/Django/Node.js 应用程序有何不同?它根本上没有什么不同。事实上,您可能会发现您的组织中已经部署了十几个微服务。没有任何新的神奇技术使您的应用程序有资格称为微服务。原创 2023-06-15 10:57:00 · 1947 阅读 · 0 评论 -
2023年Kubernetes版本的选用对比指南
Kubernetes版本表示为xyz,其中x是主要版本,y是次要版本,z是补丁版本简单来讲,kubernetes项目存在3类分支(branch),分别为master,release-X.Y,release-X.Y.Z。原创 2023-05-31 22:16:49 · 10757 阅读 · 1 评论 -
如何用Thanos 和 Prometheus 打造一个高可用的K8S监控系统
配置和设置上述架构大约需要一个月左右的时间,包括测试其他一些解决方案、验证架构、实现、在集群上开启收集以及创建所有仪表盘。在第一周,好处是显而易见的。监控集群变得更加容易,仪表盘可以快速构建和定制,收集 metrics 几乎是即插即用的,大多数应用程序以 Prometheus 格式导出 metrics,并根据 annotations 自动收集。此外,通过集成 Grafana 的 LDAP 可以达到更精细的团队权限控制。原创 2023-05-23 21:18:41 · 623 阅读 · 0 评论 -
Nomad 会替代 Kubernetes 吗?对比一下,两者如何选择?
Nomad 和 Kubernetes 的主要区别在于 Nomad 更加通用和轻量级。Nomad 可以像一个简单的任务调度程序一样工作,也可以根据项目规范承担更重的编排角色。Nomad 是由 HashiCorp 生产的补充工具组成的套件的一部分:Terraform,用于快速基础设施开发Consul,用于自动服务网络Vault,Hashicorp 的 secrets 管理工具。原创 2023-05-23 21:08:22 · 652 阅读 · 0 评论 -
16 张图硬核讲解 Kubernetes 网络
底层网络顾名思义是指网络设备基础设施,如交换机,路由器,DWDM使用网络介质将其链接成的物理网络拓扑,负责网络之间的数据包传输。可以是二层,也可以是三层;二层的典型例子是以太网Ethernet,三层是的典型例子是互联网Internet。而工作于二层的技术是vlan,工作在三层的技术是由OSPFBGP等协议组成。叠加网络是使用网络虚拟化技术,在underlay网络上构建出的虚拟逻辑网络,而无需对物理网络架构进行更改。本质上来说,使用的是一种或多种隧道协议 (tunneling。原创 2023-05-16 18:35:41 · 149 阅读 · 0 评论 -
容器狂占内存资源怎么办?让我们来解决这个问题!
资源超用(Usage > Request)的容器可能和未超用的容器竞争内存资源:对于 Request 层面,Kubelet 依据 CPU Request 设置 cgroups 接口 cpu.shares,作为容器间竞争 CPU 资源的相对权重,当节点的 CPU 资源紧张时,容器间共享 CPU 时间的比例将参考 Request 比值进行划分,满足公平性;这个很像我们用 free 命令查看节点的可用内存,不能看”free”字段下的值,而要看除去 Page Cache 之后的”available”字段下的值。原创 2023-05-09 11:46:57 · 801 阅读 · 0 评论 -
Kubernetes 自动化诊断利器:k8sgpt-operator
简单来说 k8sgpt-operator 可以在集群中开启自动化的 k8sgpt。它提供了两个 CRD:K8sGPT和Result。前者可以用来设置 k8sgpt 及其行为;而后者则是用来展示问题资源的诊断结果。原创 2023-05-05 09:26:39 · 851 阅读 · 0 评论 -
一文轻松说透 K8S Pod 各种驱逐场景
如果您合理地管理这些资源,不仅可以降低成本,还可以确保重要流程无论如何都能继续运行。所有新水果都将包含更高的优先级,称为。第一个将具有更高的值,表示更高的优先级。k8s中的pod被终止,通常是没有足够资源的结果。这样,候选节点从最适合到最不适合排序。如果两个节点的分数相同,这意味着在抢占的情况下,树莓和草莓更有可能被驱逐,为更高优先级的。在抢占时更有可能继续运行,因为它们被驱逐的可能性较小。如果您在容器中添加非常低的请求,它们的。可以被驱逐,但比下一个类别更不可能。对现有节点应用污点,所有不能容忍它的。原创 2023-05-04 11:10:13 · 793 阅读 · 0 评论 -
一文理清 K8S OOM 和 CPU 节流机制
使用 Kubernetes 时,内存不足 (OOM) 错误和 CPU 节流是云应用程序中资源处理的主要难题。这是为什么?云应用程序中的 CPU 和内存要求变得越来越重要,因为它们与您的云成本直接相关。通过 limits 和 requests ,您可以配置 pod 应如何分配内存和 CPU 资源,以防止资源匮乏并调整云成本。如果节点没有足够的资源, Pod 可能会通过抢占或节点压力被驱逐。当一个进程运行内存不足 (OOM) 时,它会被终止,因为它没有所需的资源。原创 2023-05-04 10:27:50 · 1049 阅读 · 0 评论 -
图解如何优雅关闭K8S 中 SpringBoot Pod才能减少对客户端访问影响
本文描述了一种解决方案,用于确保假设服务将正确处理零停机部署所需的所有请求。因此,构建此功能将丰富用户体验并减少将缺陷引入服务的影响。原创 2023-05-04 10:05:06 · 472 阅读 · 0 评论 -
k8s滚动发布功能从理论到实战
滚动发布,则是我们一般所说的无宕机发布。其发布方式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。当取出的服务器新版确保无问题后,接着采用同等方式更新后面的服务器k8s创建副本应用程序的最佳方法就是部署(Deployment),部署自动创建副本集(ReplicaSet),副本集可以精确地控制每次替换的Pod数量,从而可以很好的实现滚动更新。原创 2023-04-24 11:33:59 · 582 阅读 · 0 评论 -
Kubernetes生产环境最佳实践17条
Kubernetes是一种流行的容器编排工具,但在生产环境中部署和管理Kubernetes可能会面临一些挑战。为了确保生产环境的高可用性、可伸缩性和安全性,需要遵循一些最佳实践。这些实践包括使用合适的硬件和网络基础设施、使用可靠的存储和备份策略、进行监控和日志记录、使用适当的安全措施以及实施自动化和持续集成/持续交付流程。遵循这些最佳实践将有助于确保Kubernetes在生产环境中的稳定性和可靠性。原创 2023-04-23 16:50:57 · 412 阅读 · 0 评论 -
Nginx Ingress实现灰度发布从理论到实战
Ingress作为K8S集群中一种独立的组件,我们需要通过创建它来控制外部访问流量的策略,并通过Ingress Controller将其分配到一个或多个SVC中。K8S官方维护的Controller为Nginx Ingress,该Ingress支持通过配置注解(英文:annotations)的方式来实现蓝绿发布、灰度发布和A/B测试等场景。使用案例案例一:切分部分用户流量到新版本。原创 2023-04-18 18:33:10 · 1494 阅读 · 0 评论 -
2023年一定要懂的热点趋势--轻松搞懂云成本优化:FinOps
我们看看官方定义:FinOps定义了一系列云财务管理规则和最佳实践,通过助力工程和财务团队、技术和业务团队彼此合作,进行数据驱动的成本决策,使组织能够获得最大收益。总结一下,FinOps是文化实践,是意识转变,是流程规范,是团队协作。怎么样?看完这些总结是不是更迷糊了。我尝试从个人生活账单来讲一个FinOps的故事。希望你能从上面的故事中,感受到什么是FinOps。简单粗暴的地讲,FinOps是财务管理+经营管理+成本管理,需要自动化系统赋能。原创 2023-04-18 11:53:37 · 218 阅读 · 0 评论 -
OCP4.10上英伟达GPU离线安装配置实战
在 OpenShift 上进行了完整的认证,并且作为标准 Red Hat Marketplace Operaort 提供给 OpenShift 用户使用,因此 Nvidia GPU Operator 在 OpenShift 上非常简单,唯一需要注意的就是之前提到过的,在所检索的节点上 BIOS 是否有 Security Boot 设置,由于 Nvidia GPU Operator 会直接操作节点的上的受信软件变更。这个错误并不是说明过程如何被阻塞的,具体的提示会在相应 Pods 的执行日志里面。原创 2023-04-17 23:19:21 · 822 阅读 · 0 评论 -
一文“六问”带你吃透kubernetes架构原理
本文通过问答的方式不涉及任何深入的实现细节。从整体的角度,从概念上介绍了Kubernetes涉及的基本概念。相关用途包括:NodePodLabelSelector与运行过程相关的是:kubeletkube-proxypause。原创 2023-04-17 14:04:37 · 86 阅读 · 0 评论 -
Kubernetes中设置 CPU 的 requests 和 limits详解
在 Kubernetes 中,您有两种方法来指定一个 pod 可以使用多少 CPU:Requests通常用于确定平均消耗。Limits设置允许的最大资源数。Kubernetes 调度器使用 requests 来确定 pod 应该分配到集群中的哪个节点。由于调度器并不知道实际消耗(pod 尚未启动),它需要一个提示。原创 2023-04-17 13:53:25 · 4094 阅读 · 2 评论 -
制作最小Java 容器镜像实践篇
如果某些宿主机不包含目标镜像,需要先拉取镜像,然后启动容器,这时使用体积较小的镜像能加速这一过程、缩短扩容时间。另外,镜像体积越小,其构建速度也越快,同时还能减少存储和传输的成本。针对 java 镜像,google 提供的另一款工具 jib 能为您屏蔽镜像构建过程中的复杂细节,自动构建出精简的 java 镜像。虽然该方式无法直接精简镜像体积,但充分利用了镜像的缓存机制,同样可以达到加快镜像构建和容器部署的目的。将 dockerfile 中的多条指令合并成一条,通过减少镜像层数的方式达到精简镜像体积的目的。原创 2023-04-11 09:11:17 · 474 阅读 · 0 评论 -
k8s环境下如何轻松将镜像大小缩减 96%
让我们从一个示例开始,在该示例中,我们构建了一个 React 应用程序并将其容器化。运行 npx 命令并创建 Dockerfile 之后,我们得到了如图 1 所示的文件结构。原创 2023-04-11 08:56:18 · 320 阅读 · 0 评论 -
大厂都在用的k8s工作负载增强之 OpenKruise
OpenKruise (官网: https://openkruise.io) 是CNCF(Cloud Native Computing Foundation) 的孵化项目。它提供一套在 Kubernetes核心控制器 之外的扩展工作负载、应用管理能力。力哥观察到例如“阿里巴巴集团, 蚂蚁集团, 斗鱼TV, 申通, Boss直聘”这种互联网巨头已经在使用这个开源项目OpenKruise 是一个基于 Kubernetes 的,主要聚焦于云原生应用的自动化,比如部署、发布、运维以及可用性防护。原创 2023-03-31 09:26:39 · 317 阅读 · 0 评论 -
扒一扒k8s及ocp运行时及pod生命周期那些事~
Kubelet 的职责在于通过 RPC 管理容器的生命周期,实现容器生命周期的钩子,以及存活和健康监测,执行 Pod 的重启策略等。Pod是k8s调度的最小单位,pod由一组应用容器组成,其中包含了共有的环境和资源约束。在 CRI 里,这个环境被称为 PodSandbox。在启动 Pod 之前,Kubelet 调用 RuntimeService.RunPodSandbox 来创建环境。这一过程包括为 Pod 设置网络(分配 IP);原创 2023-03-30 18:19:11 · 1230 阅读 · 1 评论 -
利用Kubecost量化Kubernetes使用成本
近年来,Kubernetes已经成为广泛使用的容器编排平台。随着Kubernetes集群的使用,不同的操作方式也随之而来。一些企业更喜欢硬多租户模型,即一个集群对应一个租户,而另一些企业则更倾向于软多租户模型,即一个集群对应多个租户。软多租户模型已经被许多企业采用,因为它可以减少很多运营工作。然而,在软多租户模型下,成本分配给不同租户的可见性非常重要,以便可以向组织收费。原创 2023-03-22 08:49:37 · 277 阅读 · 0 评论 -
如何对传统应用进行容器化改造
并没有一个特定的定义能够描述所有的传统应用,但它们有一些共同的特性:使用本地文件系统来持久化存储,数据文件和应用的文件混合在一起。在同一个服务器上运行很多服务,比如 MySQL 数据库,Redis 服务器,nginx web 服务器,一个 Ruby on Rails 应用,以及一大堆定时任务使用大杂烩式的脚本和手工流程进行安装和升级(文档也很简陋)。配置是存储在文件里的,通常散落在多个位置,并与应用的文件混在一起。原创 2023-03-21 13:21:09 · 597 阅读 · 0 评论 -
彻底颠覆DevOps!探究GitOps的设计哲学和好处
GitOps:颠覆你对DevOps的认知!从这篇文章中,你不仅能够一步步掌握GitOps的设计哲学,更能深刻领悟它所带来的巨大好处!原创 2023-03-13 12:08:00 · 204 阅读 · 0 评论 -
扒一扒过去一年K8S高危漏洞都有哪些?
在过去的一年里,Kubernetes继续稳固其在关键基础设施领域的地位,成为无论是小型还是大型组织都广受欢迎的选择。然而,随着更多开发人员将Kubernetes部署与其他云原生组件相结合,构建出更加完善的工作系统时,这也使得Kubernetes更容易遭受攻击。更多的组件和更加复杂的基础架构也增加了易受攻击的范围,这是需要我们运维人员关注的。根据 Red Hat 的2022 年 Kubernetes 安全状况报告:https://www.redhat.com/rhdc/managed-files/cl-sta原创 2023-03-13 10:16:02 · 1330 阅读 · 0 评论 -
聊一聊K8S上 Java 应用的最佳实践
幸运的是,有一些工具可以优化在容器中运行的 Java 应用程序的内存配置。第三种类型的探针,启动探针,是 Kubernetes 中一个相对较新的特性。我认为,例如,如果您在与 JDK 提供程序(如 AWS 和 Amazon Corretto)匹配的环境中运行您的应用程序,这可能是有意义的。因此,我在这方面的建议是,如果您要创建一个新的应用程序,请按照为本机编译做好准备的方式进行准备。例如,您可能知道,即使您的 Java 应用程序在正常工作中不会消耗太多 CPU,但它需要大量 CPU 才能快速启动。原创 2023-03-11 13:36:21 · 1218 阅读 · 0 评论 -
K8S是否存在因DiskPressure驱逐pod,cks老鸟来剖析!
在生产中这些情况是不能忍受的,我们探究一下是什么原因导致的这些,以及如何提前预防并解决相关问题。只有了解这些问题如何产生,才能找到具体解决办法。上面三个默认配置,一个是 kubelet,一个是 docker 的,还有就是相关日志配置的,并且发现。组件完成的,该组件专用于监控容器运行环境,当监控到上面列出的文件系统达到一定量后将会发出。目录下,日志相关文件占用空间非常大,导致 /var 目录挂载的磁盘非常容易被占满。目录下,这个目录占用空间比较大,导致 /var 目录挂载的磁盘非常容易被占满。原创 2023-03-09 08:42:52 · 1734 阅读 · 0 评论