分类: Kubernetes

Kubernetes是一个开源的容器编排系统,旨在自动化部署、扩展和管理容器化应用程序。它简化了应用程序的部署和管理,提供了应用实例副本、负载均衡、滚动升级和资源监控等功能。Kubernetes具有可移植性、可扩展性和自动化性等优势,帮助用户轻松部署和运行分布式应用程序。它的自动自愈和回滚功能确保了应用程序的高可用性。总之,Kubernetes是一个强大而灵活的平台,为开发人员提供了更轻松的构建和运行分布式应用程序的方式。

38 篇文章

nsenter命令解决容器内部命令不足排查网络的问题
在docker或者container中,为了尽可能缩减镜像大小,常常不会包含一些常用的工具,类似ping,curl,tcpdump等,虽然精简了镜像,但如果我们需要在容器内部测试网络联通性时,没有这些工具就非常的头疼。其实容器内部和主机之间的网络环境是互相隔离的,处于独立的命名空间下,那如果能在主机上切换命名空间,就可以在主机上以容器的网络环境进行…
thumbnail
Kubernetes重要概念:Service详解
1 Service相关概念  1.1 什么是Service? 在 Kubernetes 中,Service 是一种抽象的资源,它提供了稳定的访问接口,将外部或集群内部的流量路由到对应的 Pod 上。Pod 是 Kubernetes 中的基本调度单元,但它们是临时的,IP 地址和生命周期都可能发生变化。Service 为 Pod 提供一个稳…
超实用!k8s网络抓包技巧,事半功倍
    在k8s中,每个Pod都拥有独立的网络命名空间,这意味着它们有自己的网络接口、IP 地址和路由表。容器之间通过共享同一个网络命名空间进行通信,这种隔离使得网络问题的排查变得更加复杂,但同时也提供了灵活性和安全性。     既然Pod拥有独立的命名空间,那我们不妨借助工具进入其命名空间进行网络抓包,这样…
可以诊断k8s的chatgpt神器:k8sgpt-operator
在 Kubernetes 上,从部署 Deployment 到正常提供服务,整个流程可能会出现各种各样问题,有兴趣的可以浏览 Kubernetes Deployment 的故障排查可视化指南(2021 中文版)[1]。从可视化指南也可能看出这些问题实际上都是有迹可循,根据错误信息基本很容易找到解决方法。随着 ChatGPT 的流行,基于 …
thumbnail
引发Openai全球性宕机,原因竟是Kubernetes?
2024年12月11日,OpenAI出现了全球性的严重宕机事件,这次事件导致OpenAI的所有服务包括ChatGPT、API和 Sora等都受到了严重影响,甚至出现无法访问的情况。关于此次事件的起因,目前官方已经出了故障报告,详见:https://status.openai.com/incidents/ctrsv3lwd797。在本文中,我将带大家…
thumbnail
k8s的负载均衡方案:MetalLB
对于自建的Kubernetes集群,默认情况下是不支持负载均衡的。当需要提供服务的外部访问时,可选用的方案不外乎 Ingress、NodePort等方式。但这些方案本身并不算非常完美,他们或多或少都存在着一些不足之外 ,如Ingress不支持TCP协议,而NodePort则是使用随机端口。对此,开源的MetalLB 方案旨在提供基于网络设备的负载均…
消除 Kubernetes 中的未利用资源
Kubernetes 中的未利用资源不仅仅是预算项目——它们是效率、可扩展性和性能的隐形杀手。 浪费的 CPU 周期、空闲内存和未充分利用的节点都会累积,增加成本的同时使集群处理实际工作负载的能力下降。如果你在大规模使用 Kubernetes,你会知道这些低效问题如何演变成实际的操作难题。 如今,随着Scaleops 等智能自动化工具的兴起,你可以…
thumbnail
k8s集群经历断电后无法启动的故障处理分享
故障应急总让人充满心跳,有时交换机故障、有时光缆被挖断,这次却是机房意外断电。。。 前阵子有个兄弟求助,他们的机房遭遇了意外断电。恢复供电后,k8s集群却无法启动。经过一番“截图分析诊断法”的默契配合,最终成功解决了故障。今天通过这篇文章,和大家分享一下这个过程。    故障发生后,很多指令无法正常回显,容器的元数据也无法正常加…
Kubernetes集群 for openEuler 22.03 LTS 二进制手动部署
Kubernetes集群 for openEuler 22.03 LTS 二进制手动部署 本文档介绍在 openEuler 操作系统上,通过二进制部署 K8S 集群的一个参考方法。 说明:本文所有操作均使用root权限执行。 一、集群状态 本文所使用的集群状态如下: 集群结构:6 台openEuler 22.03 LTS系统的虚拟机,3 个 mas…
Kubernetes中Minikube与Kubeadm的关键区别是什么?
Kubernetes中Minikube与Kubeadm的关键区别是什么? ❝ 选择正确的Kubernetes工具:理解Minikube和Kubeadm用于开发和生产环境 Kubernetes,作为自动化部署、扩展和管理容器化应用程序的领先开源平台,拥有多种工具来简化集群的设置和管理。 在这些工具中,Minikube和Kubeadm作为两个受欢迎的选…
解决 Kubernetes 命名空间卡在Terminating终止状态的问题
几个月前,我在卸载 Ceph 集群(使用 Rook 挂载)时遇到了删除命名空间的问题。 基础 我认为我已经正确删除了集群中的 Ceph 对象,最后简单地删除了命名空间: kubectl --context=sandbox delete ns rook-ceph 然而,当我尝试验证它是否确实被删除时: kubectl --context=sandbo…
thumbnail
记一次机房搬迁后网络改造引起的K8S内部容器无法访问外部网络
最近公司规模扩大,原办公室已经无法容纳更多的员工,公司高层决定搬迁办公室,同时也需要搬迁,并且在现有的电信桥接动态公网IP出口的基础上需要再增加一条移动专线,现在有2台交换机,也无法支持新的办公,需要再采购一个交换机。现在办公和服务器在一个网段192.168.2.0/24。我在了解业务后,对新办公室进行了如下改造: 1、首先网段肯定不够支撑新办公区…
thumbnail
一款功能强大的Kubernetes网络诊断工具
本文将介绍一款功能强大的Kubernetes网络诊断工具,名称为Kubeskoop。 一. 产品介绍 Kubeskoop 是一款专为Kubernetes设计的网络诊断和监控工具。Kubeskoop 提供了对集群中网络、服务、节点等多维度的可观测性,以帮助运维人员更快速地诊断和定位问题。产品具有以下特性: 1. 一键诊断网络链路 Kubes…
Kubernetes Secrets 与跨命名空间访问指南
Kubernetes Secrets 与跨命名空间访问指南 Kubernetes 是一个强大的平台,旨在大规模管理容器化应用程序,其中 Secrets 作为安全管理敏感数据(如密码、API 令牌和加密密钥)的关键功能。默认情况下,Secrets 仅限于创建它们的命名空间,限制了它们在命名空间之间的可访问性。 在本指南中,我们将探讨跨命名空间安全高效…
thumbnail
[kubectl-resource-view]: 一款用于查看k8s资源使用情况的插件
1.简介 一款自己编写的k8s 命令行插件,用于查看k8s node和pod资源的 cpu、 memory、 gpu的request 和limit 使用情况。 2.安装 可直接解压下载使用,也可以从github仓库中进行下载最新版本,支持不同架构,喜欢的麻烦给个小星星,有啥额外的需求可以提issue https://github.com/bryan…
thumbnail
[kubectl-resource-view]: 一款用于查看k8s资源使用情况的插件
一款自己编写的k8s 命令行插件,用于查看k8s node和pod资源的 cpu、 memory、 gpu的request 和limit 使用情况。可直接解压下载使用,也可以从github仓库中进行下载最新版本,支持不同架构,喜欢的麻烦给个小星星,有啥额外的需求可以提issuehttps://github.com/bryant-rh/kubectl…
thumbnail
解决 Kubernetes 节点上的挂载点卡住问题:一次深入探索
在Kubernetes的日常操作中,我们可能会遇到各种各样的挑战和问题。最近,我遇到了一个特别棘手的问题:即使Pod 和Persistent Volume (PV) 已经被删除,它们之间的挂载关系仍然存在,导致整个集群的节点都无法使用 df -h 命令。本文将分享我是如何发现并解决这个问题的。 在Kubernetes集群的日常维护中,我们发现所有节…
thumbnail
从k8s容器丢包事件中掌握内核参数优化技巧
在k8s的使用场景中,容器不是仅仅能运行就算ok,往往还需要进行容器的内核参数优化和应用程序参数的调优,如在高并发的业务场景下,运行一个java程序,我们不仅需要对其JVM参数进行调优,而且需要对其所在的容器进行内核参数优化,这篇文章主要通过一次容器丢包事件介绍容器中内核参数优化的方法。 线上业务反馈接口偶发性返回502状态码,从请求日志和监控系统…
thumbnail
Kubernetes etcd 定时备份及恢复方案
etcd 是一个高可用的分布式键值存储系统,在Kubernetes集群中用于存储和管理集群的所有关键信息,如配置数据、元数据、状态信息等。简而言之,etcd 存储了Kubernetes集群本身的所有数据,包括Pod、Service、Node、Namespace 等对象的元数据和状态。可以说,只要我们有了etcd的备份文件,就可以恢复Kubernet…
在 Kubernetes 中重启 pod 的 3 种方法
在 Kubernetes 中,管理和维护容器化应用程序是一项重要的任务。其中一个常见的操作是重启 Pod,无论是为了解决问题还是应用程序的更新。在本文中,我们将深入探讨在 Kubernetes 中重启 Pod 的三种方法,并为每种方法提供详细的步骤和示例。 kubectl 命令 首先,我们需要登录到运行着 Kubernetes 集群的主机或者使用远…
nginx-ingress代理websocket配置示例
官方文档中说明websocket不需要特别的配置,但需要在注解中配置以下三项 再ingress-nginx的官方文档中说明websocket不需要特别的配置,但需要在注解中配置以下三项 nginx.ingress.kubernetes.io/proxy-http-version: "1.1" nginx.ingress.kubernetes.io/…
thumbnail
k8s网络插件之calico两种网络模式
一、calico概述 1、k8s网络之Calico网络2、k8s网络组件calico详解3、calico的组件、架构与原理4、calico的两种网络模式BGP和IP-IP性能分析 二、IPIP与BGP两种网络模式对比 IPIP网络: 流量:tunl0设备封装数据,形成隧道,承载流量 适用网络类型:适用于互相访问的Pod不在同一个网段中,跨网段访问的…
thumbnail
Ingress出现诡异的HTTP状态码“000”
背景     近日,有朋友提到他们的ingress出现了“000”状态码,我一开始是不信的,认为他们可能是打印日志的姿势不对,因为http状态码压根就没有000的说法,于是要求对方上图,没想到,还真有。。。是怎么回事呢?让我们继续往下看。 问题现象     这是发生在比较低的版本0.25.1的身上,我们先看下定义的日志格式,status引用的是内置…
一招完美解决k8s调度不均问题
01 前言      在近期的工作中,我们发现 k8s 集群中有些节点资源使用率很高,有些节点资源使用率很低,我们尝试重新部署应用和驱逐 Pod,发现并不能有效解决负载不均衡问题。 02 调度不均衡的原因 1.1 sceduler 不是根据node负载进行调度 k8s 调度器默认会根据Po…
从k8s的事件聊聊for循环
序言     见过的人越多,就越喜欢狗。     感觉没有秋天,突然一下就凉凉的,偶尔还下个雨。k8s事件和for循环     人人都爱for循环,无论是开发还是运维,经常随便来个for循环来执行一些脚本,例如进行一个测试。 fo…
一条命令重建或者删除kubenetes的命名空间namespace下的所有pod
经常我们会遇到这样一个情况,那就是需要将部署在某个namespace下的所有pod进行删除重建操作。如果一个个的去操作既浪费时间又繁琐。实际上我们可以通过一条shell命令就可以操作。 ns=kubesphere-system;for i in `kubectl get pods -n $ns|awk '{print $1}'`;do kubect…
thumbnail
使用Nginx反向代理kubesphere
nginx处终结ssl证书,代理后端kubesphere通过NodePort暴露的http端口 [root@devops ~]# cat /etc/nginx/conf.d/rancher_devops_70mail_cn.conf upstream rancher{ server 192.168.2.249:30880 weight=1 …
thumbnail
新手必看:Kubernetes快速入门——利用vscode快速生成YAML清单!
在使用Kubernetes时,我们经常需要搜索Kubernetes YAML文件以便部署测试Pod、Deployment或其他对象。毕竟,没人愿意每次都手动编写YAML文件的每一行,对吧? 让我们来看看一些简化YAML创建过程的Kubernetes技巧。 使用Kubernetes扩展自动生成YAML 最简单的创建Kubernetes YAML文件的…
Ingress获取真实IP
一般情况下,经过ingress的请求会携带headerX-Real-IP,用户可根据header解析出真实访问IP。 特殊情况,用户请求可能经过多个nginx才达到ingress, 通过上述方法得到的并不是用户的真实IP。 request->nginx->…->ingress->backend 方案1 use-forward…
thumbnail
k8s-apollo分布式部署
一、前置准备 #1.1 环境准备 前面介绍过Apollo使用Docker分布式部署 (opens new window)的方案,这里介绍下如何在k8s集群中部署,因为随着云原生的流行,大多数公司系统的交付都是以k8s的方式进行管理运行,本次使用涉及版本如下: k8s版本: 1.26 helm版本: v3.12.0 apollo版本: 1.…
k8s存储之nfs自动供给StorageClass配置
nfs自动供给需要安装第三方插件。资源配置清单下载地址: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/tree/master/deploy 上面的资源清单中涉及的镜像源可以通过以下方式拉取: registry.cn-beijing.aliyun…
K8S集群中Pod的Evicted状态原因
在Kubernetes(K8S)中,Pod的Evicted状态表示Pod已经被驱逐,并不再运行在节点上。Pod驱逐主要是由于资源约束,如内存不足或磁盘空间不足。以下是详细原理、原因和解决方案。 原理: Kubernetes集群会监控节点资源使用情况,当资源不足时,kubelet会触发Pod驱逐过程。驱逐过程会根据优先级和资源使用情况选择要驱逐的Po…