Kubernetes
文章平均质量分 62
Kubernetes
BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
Kubernetes kubectl 全组件异常诊断方法(全干货)
这篇文章是关于使用 Kubectl 进行 Kubernetes 诊断的指南。列出了 100 个 Kubectl 命令,这些命令对于诊断 Kubernetes 集群中的问题非常有用。这些命令应该可以帮助你诊断 Kubernetes 集群以及在其中运行的应用程序。这些命令应该涵盖 Kubernetes 中的各种诊断场景。等占位符替换为你的集群和用例的实际值。使用这些命令时,请记住将。, 和替换为你的特定值。原创 2023-10-27 14:22:40 · 168 阅读 · 0 评论 -
Kubernetes 特性门控
概述特性门控是描述 Kubernetes 特性的一组键值对。你可以在 Kubernetes 的各个组件中使用标志来启用或禁用这些特性。每个 Kubernetes 组件都支持启用或禁用与该组件相关的一组特性门控。使用-h参数来查看所有组件支持的完整特性门控。要为诸如 kubelet 之类的组件设置特性门控,请使用下表总结了在不同的 Kubernetes 组件上可以设置的特性门控。原创 2023-10-27 10:30:58 · 176 阅读 · 0 评论 -
Kubernetes 无法删除状态为Terminating的Namespace解决方法
在使用Kubernetes的时候,执行删除namespace命令后挂着不动,要删除namspace一直处于Terminating状态该怎么处理。过了一会,通过命令kubectl get ns查看,名称空间eckal还处于Terminating状态,以为是删除慢,多等待了一会,但还是这个状态。接下来使用原生接口删除,竟然成功了,首先获取namespace描述,把spec的内容清空, 删除finalizers属性。我使用如下指令,查看了一下资源,发现名称空间eckal下已没有资源了。原创 2023-10-24 15:43:32 · 198 阅读 · 0 评论 -
Kubernetes 网络模型和网络通信
现在应该对 Kubernetes 的网络通信有初步的了解了吧。整个通信的过程需要各种组件的配合,比如 Pod 网络命名空间、pod 以太网接口eth0、虚拟以太网接口vethX、网桥(network bridge)cni0等。其中有些组件与 pod 一一对应,与 pod 同生命周期。虽然可以通过手动的方式创建、关联和删除,但对于 pod 这种非永久性的资源会被频繁地创建和销毁,太多人工的工作也是不现实的。原创 2023-10-24 13:34:13 · 75 阅读 · 0 评论 -
Kubernetes 部署 kubeflow1.6.1
前言安装前请注意捋清楚版本关系,如kubeflow版本对应的K8S版本及其相关工具版本等等我们此处使用的是是kubeflow-1.6.1和K8s-v1.22.8。原创 2023-10-24 10:08:38 · 261 阅读 · 0 评论 -
Kubernetes Etcd不可用日志:NOSPACE 的问题修复
两套k8s集群同一天同时出现etcd集群空间超过配额,时发现所有的均返回503报错,查看etcd的告警发现有的信息且 中的DB SIZE大于2GiB。 版本信息kubernetes版本:v1.17.0etcd版本:3.3.10,运行方式为docker容器 1、将API版本调整为3 2、声明变量ETCD_ENDPOINT 如果不清楚etcd证书存放的位置可以使用命令查看,当然endpoint也可以用这种方法 3、备份etc原创 2023-10-23 16:30:09 · 1100 阅读 · 0 评论 -
Kubernetes kubeadm 方式安装配置文件目录大全
kubernetes kubeadm方式安装配置文件目录和镜像目录地址原创 2023-10-23 16:23:55 · 798 阅读 · 0 评论 -
Kubernetes 部署 kubeflow1.7.0
KubeFlow 是一个开源的项目,旨在为 Kubernetes 提供可组合、便携式、可扩展的机器学习技术栈。它最初是为了解决在 Kubernetes 上运行分布式机器学习任务所带来的挑战而创建的。Kubernetes 本身是一个容器平台,但在近年来,越来越多的公司开始用它来运行各种工作负载,特别是机器学习任务。原创 2023-10-23 16:17:02 · 686 阅读 · 0 评论 -
Kubernetes CRD 介绍
CR(Custom Resource)其实就是在 Kubernetes 中定义一个自己的资源类型,是一个具体的 “自定义 API 资源” 实例,为了能够让 Kubernetes 认识这个 CR,就需要让 Kubernetes 明白这个 CR 的宏观定义是什么,也就是需要创建所谓的 CRD(Custom Resource Definition)来表述。这里的 Resource 就是 Pod,我们可以它通过在 Kubernetes 中创建一个真实的 Pod,但是这个 Pod 要运行哪些 Container?原创 2023-10-23 16:09:35 · 535 阅读 · 0 评论 -
Kubernetes 访问集群 API 的方法
本页展示了如何使用 Kubernetes API 访问集群。原创 2023-10-23 16:05:16 · 238 阅读 · 0 评论 -
Kubernetes kustomize 技术从入门到企业实战(下)
在 JSON 6902 标准中,opadd:添加一个新值。如果指定的路径已存在值,则替换该值;如果路径不存在,则创建路径并设置值。如果要在数组中添加新元素,可以使用作为数组索引,表示将元素添加到数组末尾。remove:删除指定路径的值。如果路径不存在,该操作将失败。replace:替换指定路径的值。如果路径不存在,该操作将失败。move:将一个值从源路径移动到目标路径。源路径和目标路径都必须存在。该操作等效于先执行remove操作,然后执行add操作。copy:复制一个值从源路径到目标路径。原创 2023-10-23 16:00:18 · 258 阅读 · 0 评论 -
Kubernetes kustomize 技术从入门到企业实战(上)
Kustomize 是一款 Kubernetes 原生的配置管理工具,其核心理念是允许用户自定义 Kubernetes 资源配置,而无需直接修改原始的 YAML 文件。这在很大程度上提高了配置的可维护性和可重用性。Kustomize 使用声明式的方式来定制资源,通过一系列预定义的指令和规则,用户可以对基础资源进行修改、添加或删除。易于理解:Kustomize 使用简单的 YAML 语法,与 Kubernetes 资源本身的定义方式保持一致,易于学习和理解。原子性。原创 2023-10-23 15:51:36 · 315 阅读 · 0 评论 -
Kubernetes kubectl 命令从 Kubernetes 返回所有用户帐户的列表
目前,我可以通过我们的管理平台 Rancher 从 Kubernetes 中查看所有用户帐户及其各自名称、电子邮件和 ID 的列表,但问题是,我似乎找不到返回的方法通过 Kubectl 或 Powershell 通过命令行获取这些用户的逗号分隔列表。我知道可以使用“kubectl get namespace”和“kubectl get pods”命令从 Kubernetes 返回命名空间、pod 等的列表。我希望从 Kubernetes 中输出所有用户帐户的逗号分隔列表。最后,你可能想要的命令是。原创 2023-10-23 15:24:28 · 362 阅读 · 0 评论 -
Kubernetes kubectl命令出现错误【The connection to the server localhost:8080 was refused - did you specif
接着再运行kubectl命令就OK了。原创 2023-10-23 15:22:42 · 2642 阅读 · 2 评论 -
Kubernetes kubeadm init 报错 ”unknown service runtime.v1alpha2.RuntimeService”
但其实,删除完后要重启 containerd 服务,不然不生效。起码这个错误不会出现了,其他错误看之前配置了。原创 2023-10-16 16:37:55 · 539 阅读 · 0 评论 -
Centos7 部署 Kubernetes Containerd
cri-containerd-cni-1.6.4-linux-amd64.tar.gz 包含containerd以及cri runc等相关工具包,建议下载本包。containerd-1.6.4-linux-amd64.tar.gz 只包含containerd。默认情况下k8s.gcr.io无法访问,所以使用我提供的阿里云镜像仓库地址即可。包中会有containerd启动脚本,我们已经解压到对应的目录,可以直接调用启动。上面的文件都是二进制文件,直接移动到对应的目录并配置好环境变量就可以进行使用了。原创 2022-12-05 21:46:48 · 1341 阅读 · 0 评论 -
Kubernetes 集群优化(CoreDNS、IPVS)
增加副本数查看。原创 2022-12-23 15:41:17 · 228 阅读 · 0 评论 -
Kubernetes Pod 调度策略
在 kubernetes 集群当中,我们很少直接创建一个 pod 来启动应用服务,而是通过控制器来创建 pod 从而运行应用实例,比如: Deployment、DaemonSet、Job 等控制器完成对一组 Pod 副本的创建。原创 2022-12-12 16:39:20 · 328 阅读 · 0 评论 -
Kubernetes Kubectl top 命令
kubectl top命令可显⽰节点和Pod对象的资源使⽤信息,它依赖于集群中的资源指标API来收集各项指标数据。它包含有node和pod两个⼦命令,可分别⽤于显⽰Node对象和Pod对象的相关资源占⽤率。,例如下⾯显⽰所有节点的资源占⽤状况的结果中显⽰了各节点累计CPU资源占⽤时长及百分⽐,以及内容空间占⽤量及占⽤⽐例。⽽名称空间级别的Pod对象资源占⽤率的使⽤⽅式会略有不同,使⽤时,⼀般应该限定名称空间及使⽤标签选择器过滤出⽬标Pod对象。列出Node资源占⽤率命令的语法格式为。原创 2022-12-10 12:11:23 · 1819 阅读 · 0 评论 -
Kubernetes HPA 动态弹性扩缩容
Metrics Server是Kubernetes容器资源指标的可扩展、高效来源、内置自动缩放管道,是由用户开发的一个api server,集群范围的资源使用情况的指标监控器,在HAP早期版本使⽤的是⼀个叫Heapster组件来提供CPU和内存指标的,在后期的版本Kubernetes转向了使⽤Metrcis Server组件来提供Pod的CPU和内存指标,Metrcis Server通过Metrics API将数据暴露出来,然后我们就可以使⽤Kubernetes的API来获取相应的数据;原创 2022-12-10 10:33:17 · 975 阅读 · 0 评论 -
Kubernetes Kubeadm init 与 join 原理分析
kubeadm是社区维护的Kubernetes集群一键部署利器,使用两条命令即可完成k8s集群中master节点以及node节点的部署,其底层原理是利用了k8s TLS bootstrap特性。 1、k8s master节点部署 此外,我们也可以自己编写yaml文件来自定义kubeadm的启动过程和一些组件的启动参数等等 2、 k8s node节点部署(将一个node节点加入到已有集群当中) 此外,我们也可以自己编写yaml文件来自原创 2022-12-06 17:21:14 · 790 阅读 · 0 评论 -
Kubernetes Pod报错 filed to get sandbox image “k8s.gcr.io/pause:3.6“
最近工作中在部署Pod后发现无法正常启动,查看Pod详情后看到以下报错信息: 问题的原因是因为调度的这台服务器上没有 k8s.gcr.io/pause:3.6 镜像,所以我们把镜像下载到这台服务器就可以了,执行命令: 到此 Kubernetes Pod报错 filed to get sandbox image "k8s.gcr.io/pause:3.6"问题解决。原创 2022-12-06 17:00:31 · 3583 阅读 · 0 评论 -
Kubernetes Kubelete 报错 ctr: failed to create shim task: OCI runtime create failed
最近在工作中加入Kubernetes新的服务器节点的之后,发现 Kubelet 报错如下: 这个是说缺少依赖包 libseccomp ,需要注意的是centos 7中yum下载的版本是2.3的,版本不满足我们最新containerd的需求,需要下载2.4以上的,所以我们先下载2.5.1版本的 libseccomp: libseccomp 2.5.1 版本下载地址 卸载旧版本: 安装新版本的: 查看现有版本:原创 2022-12-06 16:55:23 · 4435 阅读 · 0 评论 -
Kubernetes 无法删除状态为Terminating的Pod解决方法
每当删除namespace或pod 等一些Kubernetes资源时,有时资源状态会卡在terminating,很长时间无法删除,甚至有时增加--force flag(强制删除)之后还是无法正常删除。这时就需要edit该资源,将字段finalizers设置为null,之后Kubernetes资源就正常删除了。 当删除pod时有时会卡住,pod状态变为terminating,无法删除pod 1、强制删除 2、如果强制删除还不行,设置finalizers为空原创 2022-12-06 16:36:13 · 536 阅读 · 0 评论 -
Calico 报错 calico/node is not ready: BIRD is not ready: BGP not established with(导致 K8S 集群网络无法使用)
Calico 报错 calico/node is not ready: BIRD is not ready: BGP not established with,今天不知道怎么回事,一台机器的calico-报错,也就是无法初始化正常。原创 2022-11-28 17:03:53 · 2293 阅读 · 0 评论 -
Calico 网络故障排查 calico/node is not ready: BIRD is not ready(指定Calico匹配网桥规则)
到此 Calico 网络故障排查 calico/node is not ready: BIRD is not ready(指定Calico匹配网桥规则)介绍完成。综上所述,基本可以确定是节点的calico的BGP网卡设备识别错误导致。4.在master执行calicoctl node status。2.修改calico.yaml。原创 2022-11-28 17:01:56 · 2143 阅读 · 0 评论 -
Centos7 部署Skywalking(Kubernetes)
最近项目中通过Kubernetes部署Skywalking完成链路日志采集和展示,特此记录便于日后查阅。原创 2022-11-21 13:09:31 · 411 阅读 · 0 评论 -
Centos7 部署Grafana(Kubernetes)
最近项目中通过Kubernetes部署Grafana完成可视化大屏展示,特此记录便于日后查阅。原创 2022-11-21 13:05:57 · 326 阅读 · 0 评论 -
Centos7 部署Prometheus(Kubernetes)
最近项目中通过Kubernetes部署Prometheus和Grafana完成可视化大屏监控,特此记录便于日后查阅。原创 2022-11-21 13:04:12 · 628 阅读 · 0 评论 -
Kubernetes 持久化存储(Pod Volumes,PV和PVC)
场景一:如果 pod 中的某一个容器在运行时异常退出,被 kubelet 重新拉起之后,如何保证之前容器产生的重要数据没有丢失?场景二:如果同一个 pod 中的多个容器想要共享数据,应该如何去做?本地存储,常用的有 emptydir/hostpath;网络存储:网络存储当前的实现方式有两种,一种是 in-tree,它的实现的代码是放在 K8s 代码仓库中的,随着k8s对存储类型支持的增多,这种方式会给k8s本身的维护和发展带来很大的负担;原创 2022-10-17 14:42:31 · 696 阅读 · 0 评论 -
Kubernetes 部署SonarQube
通过Ingress访问sonarqube,初始用户名密码为admin/admin。容器服务 ACK,持久化存储使用云盘动态存储卷。容器服务 ACK,持久化存储使用云盘动态存储卷。原创 2022-10-17 14:32:26 · 922 阅读 · 0 评论 -
Prometheus + Grafana on Kubernetes部署
一键部署链接使用k8s方式部署Prometheus + grafana 监控pod 和节点信息环境基础:k8s集群创建方便管理node节点基础数据,cpu,io,内存,磁盘,网络等偏向使用DaemonSet部署的node-exporter一键部署默认是这种pod更为详细的k8s内部信息,pod,svc,namespace,等集群信息推荐deployment部署kube-state-metrics方式项目地址 点我跳转本次实验使用这种模式。原创 2022-10-08 16:48:21 · 815 阅读 · 0 评论 -
SpringBoot 使用Prometheus采集自定义指标数据
我们在k8s集群成功搭建了Prometheus服务。今天,我们将在springboot2.x中使用prometheus记录指标。原创 2022-10-08 16:38:24 · 2859 阅读 · 5 评论 -
Kubernetes引入外部服务与外部数据源
Kubernetes中如何使用外部有状态服务,如mysql。原创 2022-08-19 14:18:46 · 1528 阅读 · 0 评论 -
Kubernetes 中进行 PVC 的扩容
Kubernetes 1.11 版本中,PVC 的扩容功能进入了 Beta 阶段,一般来说,Kubernetes 功能进入 Beta 阶段就意味着基本可以用于生产了。这里就做几个小测试,看看这一功能的使用方法。原创 2022-08-19 14:13:39 · 1254 阅读 · 0 评论 -
Kubernetes 使用 PVC 持久卷后,持久卷内数据丢失问题
背景:使用dockerhub官方的mongodb 3.6部署了3副本的workload,但是每次重启pod,都会发现原本该pod写入持久卷的数据丢失,经过排查,找到了问题所在。dockerfile构建后的镜像中,VOLUME中的操作并不会被kubernetes忽略,而是会继续挂载,如需要将其覆盖,必须要手工指定pvc的挂载点同名,将其覆盖,类似这样。故将数据卷挂载至pod内的/data目录看似并无问题,创建后也正常启动,并写入数据,一切看似都再正常不过。后,再次测试,数据丢失的问题已经解决。原创 2022-08-19 14:06:54 · 758 阅读 · 0 评论 -
《Kubernetes生产级实践指南》课程手记-FAQ
Q:我的pod之间ping不通Q:无法通过curl访问web服务Q:有一个calico-node总是错误,启动不成功A:网络有问题,一般都是calico插件的问题,calico就是k8s网络的具体实现者,也是负责人,所以网络问题第一个找它就对了。calico问题出现最多的就是ip识别错误,calico要实现对本机网络的完全控制,首先就得知道你的本机ip,默认它有一个算法自动识别,但根据你的网络情况有一定概率识别错误。...原创 2022-08-18 16:46:26 · 909 阅读 · 0 评论 -
Jenkins容器自动化部署与持续集成(Kubernetes)
随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致。基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。因此,传统的人工部署已经心有余而力不足。持续集成,持续部署,持续交互对于微服务开发来说,是提高团队整体效率不可或缺的一环。合理的使用CI,CD能够极大的提高了生产效率,也提高了产品的交互质量。...原创 2022-08-17 17:07:25 · 2005 阅读 · 0 评论 -
云原生深度比较OSM和Istio
尽管ServiceMesh世界中,现在正处于战国时期。直到上个月,Istio依然是最有希望一统天下的王者。CNCF于2016年收购Kubernetes之后,谷歌,IBM和开源服务网格Lyft共同开发了Istio,开源边缘和服务代理Lyft开发了Envoy。这三者在一起几乎变得一致,而云原生环境中的大多数其他平台都将Istio作为事实上的服务网格层。六年前,来自Google的团队首次在开源GitHub存储库中提交了Kuberenetes,如今,其使用量一直...原创 2022-05-04 13:45:48 · 412 阅读 · 3 评论 -
Kubernetes Ingress-nginx高级用法
1、什么是ingressngress(在kubernetesv1.1时添加)暴露从集群外到集群内服务的HTTP或HTTPS路由。定义在ingress资源上的规则控制流量的路由。 internet | [ Ingress ] --|-----|-- [ Services ]一个ingress可以配置用于提供外部可访问的服务url、负载均衡流量、SSL终端和提供虚拟主机名配置。ingress controller负责实现(通常使用负载均衡器(loadbal.原创 2022-01-26 15:09:04 · 2963 阅读 · 0 评论