kubernetes
文章平均质量分 82
云原生实战指南
小白也看得懂的云原生指南
展开
-
K8S Informer机制原理解读 | Reflector
Reflector用于监控指定资源的Kubernetes资源,当监控的资源发生变化时,触发相应的变更事件,例如Added(资源添加)事件、Updated(资源更新)事件、Deleted(资源删除)事件,并将其资源对象存放到本地缓存DeltaFIFO中。(2)listMetaInterface.GetResourceVersion用于获取资源版本号,ResourceVersion (资源版本号)非常重要,Kubernetes中所有的资源都拥有该字段,它标识当前资源对象的版本号。原创 2024-01-19 13:45:31 · 542 阅读 · 0 评论 -
K8S Informer机制原理解读 | Indexer
Indexer有4个非常重要的数据结构,分别是Indices、Index、Indexers及IndexFunc。items字段中存储的是资源对象数据,其中items的key通过keyFunc函数计算得到,计算默认使用MetaNamespaceKeyFunc函数,该函数根据资源对象计算出/格式的key,如果资源对象的为空,则作为key,而items的value用于存储资源对象。ThreadSafeMap是一个内存中的存储,其中的数据并不会写入本地磁盘中,每次的增、删、改、查操作都会加锁,以保证数据的一致性。原创 2024-01-19 13:42:40 · 538 阅读 · 0 评论 -
K8S Informer机制原理解读 | 架构设计
在Kubernetes系统中,组件之间通过HTTP协议进行通信,在不依赖任何中间件的情况下需要保证消息的实时性、可靠性、顺序性等。那么Kubernetes是如何做到的呢?答案就是Informer机制。Kubernetes的其他组件都是通过client-go的Informer机制与Kubernetes API Server进行通信的。原创 2024-01-18 15:57:55 · 1467 阅读 · 0 评论 -
我敢说!你没见过这么细的client-go讲解
类似于kubectl命令,通过ClientSet列出所有运行中的Pod资源对象,ClientSet Example代码示例如下:运行以上代码,列出default命名空间下的所有Pod资源对象的相关信息。首先加载kubeconfig配置信息,kubernetes.NewForConfig通过kubeconfig配置信息实例化clientset对象,该对象用于管理所有Resource的客户端。原创 2024-01-18 10:53:18 · 740 阅读 · 0 评论 -
保送阿里云的云原生学习路线
近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。Linux基础知识:云原生技术通常在Linux环境中运行,因此建议首先掌握Linux的基础知识,包括命令行操作、文件系统、权限管理等。容器化技术:学习容器化技术是云原生的基础。理解Docker和容器的概念,学习如何构建、管理和部署容器,并了解容器镜像和容器编排工具(如Docker Compose)的使用。Kubernetes:学习Kubernetes是云原生领域的核心。原创 2024-01-16 17:03:59 · 1146 阅读 · 0 评论 -
看完此文,谁还敢说你不会创建k8s资源
我们都知道,K8S中一切皆资源,在使用K8S时,所有的pod或者controller都是通过yaml文件进行创建的。那么接下来,就和大家一起看一下K8S是如何创建资源的。原创 2024-01-16 17:03:25 · 411 阅读 · 0 评论 -
光K8S的目录结构就够你学一天!
由于Kubernetes项目全球开发者众多,这导致早期的代码包较多,尤其是kube-apiserver项目,其内部所引用的代码包特别多。随着Kubernetes系统版本的迭代,逐渐将部分包进行了合并,其中staging/目录为核心包暂存目录,该目录下的核心包多以软连接的方式链接到vendor/k8s.io目录。Go语言官方对项目的结构设计没有强制要求,早期的Go语言开发者都喜欢将包文件代码放置在项目的src/目录下,如nsqio开源项目,开发者喜欢将入口文件放入apps/目录。原创 2024-01-15 17:59:27 · 487 阅读 · 0 评论 -
关于K8S组件,你真正了解多少?
Kubernetes系统用于管理分布式节点集群中的微服务或容器化应用程序,并且其提供了零停机时间部署、自动回滚、缩放和容器的自愈(其中包括自动配置、自动重启、自动复制的高弹性基础设施,以及容器的自动缩放等)等功能。Kubernetes系统最重要的设计因素之一是能够横向扩展,即调整应用程序的副本数以提高可用性。设计一套大型系统,且保证其运行时健壮、可扩展、可移植和非常具有挑战性,尤其是在系统复杂度增加时,系统的体系结构会直接影响其运行方式、对环境的依赖程度及相关组件的耦合程度。原创 2024-01-15 17:32:36 · 980 阅读 · 0 评论 -
为什么我说小公司也一定要用K8S
在使用服务网格后,开发人员在开发应用的过程中,无须再去关心代码的网络部分,这些功能都被服务网格实现,让开发人员可以只关心代码逻辑部分,即可轻松实现网络部分的功能,比如断流、分流、路由、负载均衡、限速和触发故障等功能。在测试过程中,可能同时存在多套环境,当然也会创建其他环境或临时环境,之前测试环境的创建需要找运维人员或者自行手工搭建。在迁移至Kubernetes集群后,开发人员如果需要新的环境,无须再找运维,只需要在Jenkins上点点鼠标即可在Kubernetes集群上创建一套新的测试环境。原创 2024-01-15 12:50:25 · 1140 阅读 · 0 评论 -
一文学会服务网格与istio使用
这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。Bookinfo 应用分为四个单独的微服务::这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。details:这个微服务中包含了书籍的信息。reviews:这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。ratings:这个微服务中包含了由书籍评价组成的评级信息。v1 版本不会调用 ratings 服务。原创 2024-01-13 14:50:52 · 996 阅读 · 0 评论 -
小公司也可以0成本构建统一的告警管理体系
使用Go语言编写,能够对接 Alertmanager 将告警信息发送至钉钉群。但无法发送短信、电话等告警。代码地址:https://github.com/timonwong/prometheus-webhook-dingtalk。原创 2024-01-12 15:50:09 · 813 阅读 · 0 评论 -
大厂都在用的监控高可用方案,小公司还不赶紧学起来?
Prometheus是 基于 Go 语言开发,是一套开源的系统监控报警框架,能轻松支持上万台规模的集群。Thanos 是一个「开源的,高可用的 Prometheus 系统,具有长期存储能力」。很多知名公司都在使用 Thanos,也是 CNCF 孵化项目的一部分。Thanos 的一个主要特点就是通过使用对象存储(比如 S3)可以允许 “无限” 存储空间。对象存储可以是每个云提供商提供的对象存储也可以是 ceph、rook 或 minio 这样的解决方案。原创 2024-01-11 16:13:43 · 1215 阅读 · 0 评论 -
恭喜!K8sGPT加入CNCF!
K8sGPT 采用编码的 SRE 技术,利用人工智能(托管或自带)来简化复杂问题的描述并提供易于实施的解决方案。该工具可通过 CLI 或作为操作员访问,并且可以与可观测性项目集成,以促进持续监控和直接分类。K8sGPT 的目标是充当虚拟工程师,减少团队所需的人员数量,并消除云原生采用的两个最重要的障碍:成本和技能。原创 2024-01-05 10:43:52 · 413 阅读 · 0 评论 -
Ingress 就应该这么用!轻松玩转Kubernetes流量入口管理
Ingress 将 HTTP 和 HTTPS 路由从集群外部公开到 集群内的服务。流量路由由入口资源上定义的规则控制。这是一个简单的示例,其中 Ingress 将其所有流量发送到一个服务:Ingress 可以配置为提供服务外部可访问的 URL、负载平衡流量、终止 SSL/TLS 以及提供基于名称的虚拟托管。Ingress 控制器负责 实现 Ingress,通常使用负载均衡器,但它也可能配置边缘路由器或其他前端来帮助处理流量。原创 2023-12-31 23:24:04 · 508 阅读 · 0 评论 -
Jenkins实战指南:实现自动化代码拉取和Harbor私有镜像仓库上传
前两篇中,介绍了如何搭建个人私有镜像仓库Harbor,并编写了一个goweb项目进行打包上传,本文则继续介绍如何利用jenkins 实现自动打包镜像并上传。原创 2023-12-28 20:27:34 · 683 阅读 · 0 评论 -
云原生必备工具!手把手教你搭建Harbor私有仓库(下)
上文中搭建的Harbor为了能够快速在本地搭建起来,因此去掉了443端口。本文中将继续介绍,如何开启ssl验证以及从其他节点拉取私有镜像仓库中的镜像。原创 2023-12-28 13:55:00 · 378 阅读 · 0 评论 -
云原生必备工具!手把手教你搭建Harbor私有仓库(上)
Harbor是一个开源的企业级容器镜像仓库管理系统,旨在提供安全、可信赖的容器镜像管理解决方案。它由VMware公司开发并贡献给CNCF(云原生计算基金会)进行维护。总之,Harbor是一个功能强大、安全可靠的容器镜像仓库管理系统,适用于企业级容器化环境,为用户提供了完善的容器镜像管理解决方案。原创 2023-12-27 22:07:50 · 664 阅读 · 0 评论 -
揭秘Pod状态与生命周期管理的秘密(下)
上一篇文章中主要介绍了Pod的几种容器(Init、Pause),本文主要介绍Pod当中Hook的概念与使用。点击可以查看所有相关文章。原创 2023-12-27 08:00:00 · 875 阅读 · 0 评论 -
揭秘Pod状态与生命周期管理的秘密(中)
上一篇文章中主要介绍了Pod的基础概念与使用、删除。本文将带你一起学习Pod的几种容器(Init、Pause)点击可以查看所有相关文章。原创 2023-12-26 21:02:19 · 842 阅读 · 0 评论 -
揭秘Pod状态与生命周期管理的秘密(上)
这篇文章将为您揭示Pod状态与生命周期管理的关键知识,帮助您轻松掌握容器化技术的精髓。通过深入剖析Pod的生命周期,包括创建、运行、停止和删除等不同阶段的状态转换和管理方法,您将能够更好地理解和应用容器化技术。我们还将分享一些实用的技巧和最佳实践,以帮助您优化和提升容器化应用的性能和稳定性。无论您是初学者还是经验丰富的容器化技术从业者,本文都将为您提供宝贵的指导和启示。不容错过的一篇文章,让容器化技术成为您的利器,助您在快速变化的技术世界中脱颖而出!原创 2023-12-26 16:18:08 · 388 阅读 · 0 评论 -
打破限制,随时随地练习K8S!在线Kubernetes平台开启你的技术之旅!
Play with Kubernetes 一个提供了在浏览器中使用免费 CentOS Linux 虚拟机的体验平台,其内部实际上是 Docker-in-Docker(DinD)技术模拟了多虚拟机/PC 的效果。Play with Kubernetes 平台有如下几个特色:允许我们使用 github 或 dockerhub 账号登录在登录后会开始倒计时,让我们有 4 小时的时间去实践K8s 环境使用 kubeadm 来部署(使用用 weave 网络)原创 2023-12-25 21:03:51 · 1518 阅读 · 0 评论 -
轻松学会在Kubernetes上一键部署WordPress!
在前文k8s部署有状态应用中,简单介绍了StatefulSet的使用。本教程将展示如何使用 Minikube 部署 WordPress 站点和 MySQL 数据库。这两个应用程序都使用 PersistentVolumes 和 PersistentVolumeClaims 来存储数据。PersistentVolume (PV) 是集群中的一块存储,由管理员手动配置,或者由 Kubernetes 使用 StorageClass动态配置。原创 2023-12-25 14:46:11 · 1325 阅读 · 0 评论 -
Kubectl 部署有状态应用(下)
接上文创建完StatefulSet后,本文继续介绍StatefulSet 扩展、更新、删除等内容。原创 2023-12-24 22:22:25 · 939 阅读 · 0 评论 -
Kubectl 部署有状态应用(上)
前面介绍了Deployment以及如何部署无状态应用。本文将继续介绍如何在k8s上部署有状态应用。原创 2023-12-24 21:01:26 · 1281 阅读 · 0 评论 -
Kubernetes 100个常用命令!
Kubernetes 100个常用命令!原创 2023-12-23 13:46:38 · 1175 阅读 · 0 评论 -
用Minikube 搭建一个单机k8s玩玩
Minikube是一款单机搭建和管理Kubernetes集群的工具。与Kind 类似,但是个人认为比Kind 好用。原创 2023-12-22 18:55:22 · 393 阅读 · 0 评论 -
Deployment Controller详解(下)
上一篇在中介绍了Deployment Controller 的创建、更新和回滚。了解了这三个功能,基本上也就懂得了大厂PaaS平台中服务的灰度升级、失败回滚等操作是如何实现的了。接下来本文会介绍Deployment Controller的暂停和恢复部署。原创 2023-12-23 13:06:52 · 393 阅读 · 0 评论 -
Deployment Controller详解(上)
Deployment 为 Pod 和 Replica Set(下一代 Replication Controller)提供声明式更新。只需要在 Deployment 中描述您想要的目标状态是什么,Deployment controller 就会帮您将 Pod 和 ReplicaSet 的实际状态改变到您的目标状态。您可以定义一个全新的 Deployment 来创建 ReplicaSet 或者删除已有的 Deployment 并创建一个新的来替换。原创 2023-12-22 22:31:48 · 1365 阅读 · 0 评论 -
Kubectl 部署无状态应用
Kubectl 部署无状态应用原创 2023-12-23 08:00:00 · 848 阅读 · 0 评论 -
Kubectl 部署简单应用
Kubectl 部署简单应用原创 2023-12-22 17:40:16 · 384 阅读 · 0 评论