自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员溪昂

云原生领域探索者~

  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 手机也能随时随地玩红警啦!

还在为找不到红警安装包苦恼吗?现在可以随时随地,无论手机、ipad、电脑都可以无需安装包在线玩红警啦!!不仅能本地单机玩耍,还能联网玩耍(可以和老外一起玩哦~)具体在线链接可关注公众号,后台回复「红警」即可获取。

2024-01-21 22:35:04 630

原创 K8S Informer机制原理解读 | Reflector

Reflector用于监控指定资源的Kubernetes资源,当监控的资源发生变化时,触发相应的变更事件,例如Added(资源添加)事件、Updated(资源更新)事件、Deleted(资源删除)事件,并将其资源对象存放到本地缓存DeltaFIFO中。(2)listMetaInterface.GetResourceVersion用于获取资源版本号,ResourceVersion (资源版本号)非常重要,Kubernetes中所有的资源都拥有该字段,它标识当前资源对象的版本号。

2024-01-19 13:45:31 601

原创 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 614

原创 K8S Informer机制原理解读 | 架构设计

在Kubernetes系统中,组件之间通过HTTP协议进行通信,在不依赖任何中间件的情况下需要保证消息的实时性、可靠性、顺序性等。那么Kubernetes是如何做到的呢?答案就是Informer机制。Kubernetes的其他组件都是通过client-go的Informer机制与Kubernetes API Server进行通信的。

2024-01-18 15:57:55 1521

原创 我敢说!你没见过这么细的client-go讲解

类似于kubectl命令,通过ClientSet列出所有运行中的Pod资源对象,ClientSet Example代码示例如下:运行以上代码,列出default命名空间下的所有Pod资源对象的相关信息。首先加载kubeconfig配置信息,kubernetes.NewForConfig通过kubeconfig配置信息实例化clientset对象,该对象用于管理所有Resource的客户端。

2024-01-18 10:53:18 957

原创 保送阿里云的云原生学习路线

近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。Linux基础知识:云原生技术通常在Linux环境中运行,因此建议首先掌握Linux的基础知识,包括命令行操作、文件系统、权限管理等。容器化技术:学习容器化技术是云原生的基础。理解Docker和容器的概念,学习如何构建、管理和部署容器,并了解容器镜像和容器编排工具(如Docker Compose)的使用。Kubernetes:学习Kubernetes是云原生领域的核心。

2024-01-16 17:03:59 1170

原创 看完此文,谁还敢说你不会创建k8s资源

我们都知道,K8S中一切皆资源,在使用K8S时,所有的pod或者controller都是通过yaml文件进行创建的。那么接下来,就和大家一起看一下K8S是如何创建资源的。

2024-01-16 17:03:25 432

原创 光K8S的目录结构就够你学一天!

由于Kubernetes项目全球开发者众多,这导致早期的代码包较多,尤其是kube-apiserver项目,其内部所引用的代码包特别多。随着Kubernetes系统版本的迭代,逐渐将部分包进行了合并,其中staging/目录为核心包暂存目录,该目录下的核心包多以软连接的方式链接到vendor/k8s.io目录。Go语言官方对项目的结构设计没有强制要求,早期的Go语言开发者都喜欢将包文件代码放置在项目的src/目录下,如nsqio开源项目,开发者喜欢将入口文件放入apps/目录。

2024-01-15 17:59:27 561

原创 关于K8S组件,你真正了解多少?

Kubernetes系统用于管理分布式节点集群中的微服务或容器化应用程序,并且其提供了零停机时间部署、自动回滚、缩放和容器的自愈(其中包括自动配置、自动重启、自动复制的高弹性基础设施,以及容器的自动缩放等)等功能。Kubernetes系统最重要的设计因素之一是能够横向扩展,即调整应用程序的副本数以提高可用性。设计一套大型系统,且保证其运行时健壮、可扩展、可移植和非常具有挑战性,尤其是在系统复杂度增加时,系统的体系结构会直接影响其运行方式、对环境的依赖程度及相关组件的耦合程度。

2024-01-15 17:32:36 999

原创 为什么我说小公司也一定要用K8S

在使用服务网格后,开发人员在开发应用的过程中,无须再去关心代码的网络部分,这些功能都被服务网格实现,让开发人员可以只关心代码逻辑部分,即可轻松实现网络部分的功能,比如断流、分流、路由、负载均衡、限速和触发故障等功能。在测试过程中,可能同时存在多套环境,当然也会创建其他环境或临时环境,之前测试环境的创建需要找运维人员或者自行手工搭建。在迁移至Kubernetes集群后,开发人员如果需要新的环境,无须再找运维,只需要在Jenkins上点点鼠标即可在Kubernetes集群上创建一套新的测试环境。

2024-01-15 12:50:25 1217

原创 一文学会服务网格与istio使用

这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。Bookinfo 应用分为四个单独的微服务::这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。details:这个微服务中包含了书籍的信息。reviews:这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。ratings:这个微服务中包含了由书籍评价组成的评级信息。v1 版本不会调用 ratings 服务。

2024-01-13 14:50:52 1013

原创 小公司也可以0成本构建统一的告警管理体系

使用Go语言编写,能够对接 Alertmanager 将告警信息发送至钉钉群。但无法发送短信、电话等告警。代码地址:https://github.com/timonwong/prometheus-webhook-dingtalk。

2024-01-12 15:50:09 833

原创 大厂都在用的监控高可用方案,小公司还不赶紧学起来?

Prometheus是 基于 Go 语言开发,是一套开源的系统监控报警框架,能轻松支持上万台规模的集群。Thanos 是一个「开源的,高可用的 Prometheus 系统,具有长期存储能力」。很多知名公司都在使用 Thanos,也是 CNCF 孵化项目的一部分。Thanos 的一个主要特点就是通过使用对象存储(比如 S3)可以允许 “无限” 存储空间。对象存储可以是每个云提供商提供的对象存储也可以是 ceph、rook 或 minio 这样的解决方案。

2024-01-11 16:13:43 1282

原创 Docker实战10|实现volum数据卷

上一篇文章中,仔细讲解了Docker是如何改变当前的root文件系统以及mount等操作。本文继续讲解Docker是如何实现Volum数据卷的。

2024-01-10 13:57:15 1090

原创 大学生未毕业就月均收入5000,原来是做了这些。

本文主要给未毕业的大学生,提供一些提升个人质量的小技巧。干货满满,全是实操。

2024-01-10 11:21:18 968

原创 Docker实战09|使用AUFS包装busybox

以上三篇主要实现了。接下来的时间会和大家一起学习Docker是如何构造镜像的。

2024-01-09 15:08:52 1137

原创 Docker实战08|Docker管道及环境变量识别

上一篇文章中,讲解了如何通过Go语言实现对Docker Cgroup的资源限制具体文章可见有需要的小伙伴可以回顾一下。接下来本文会详细介绍一下Docker 管道及环境变量识别。

2024-01-09 10:00:06 757 1

原创 Docker实战07|Docker增加容器资源限制

前几篇中,对Cgroups包含的3个概念进行了介绍,这里做如下简单回顾。• cgroup hierarchy中的节点,用于管理进程和subsystem的控制关系。• subsystem作用于hierarchy上的cgroup节点,并控制节点中进程的资源占用。• hierarchy将cgroup通过树状结构串起来,并通过虚拟文件系统的方式暴露给用户。根据上面3个概念的关系,先创建出如下的数据结构。见。

2024-01-08 12:53:08 1136

原创 Docker实战06|深入剖析Docker Run命令

Linux下的/proc文件系统是由内核提供的,它其实不是一个真正的文件系统,只包含了系统运行时的信息(比如系统内存、mount设备信息、一些硬件配直等),它只存在于内存中,而不占用外存空间。它以文件系统的形式,为访问内核数据的操作提供接口。实际上,很多系统工具都是简单地去读取这个文件系统的某个文件内容,比如lsmod,其实就是cat /proc/modules。当遍历这个目录的时候,会发现很多数字,这些都是为每个进程创建的空间,数字就是它们的PID。

2024-01-08 12:52:35 1532

原创 Docker实战05|Docker构建流程分析

在上一文中主要介绍了Cgroups基本原理以及实现。相信读完以后可以更加深入的了解Linux Cgroups的底层实现原理了。本文继续针对Docker 在构建时都干了哪些事情做一些详细的讲解。

2024-01-06 20:30:44 987

原创 Docker实战04|Union File System

在上一文中主要介绍了Cgroups基本原理以及实现。相信读完以后可以更加深入的了解Linux Cgroups的底层实现原理了。本文继续针对Docker 在构建时都干了哪些事情做一些详细的讲解。

2024-01-06 10:19:23 396

原创 恭喜!K8sGPT加入CNCF!

K8sGPT 采用编码的 SRE 技术,利用人工智能(托管或自带)来简化复杂问题的描述并提供易于实施的解决方案。该工具可通过 CLI 或作为操作员访问,并且可以与可观测性项目集成,以促进持续监控和直接分类。K8sGPT 的目标是充当虚拟工程师,减少团队所需的人员数量,并消除云原生采用的两个最重要的障碍:成本和技能。

2024-01-05 10:43:52 444

原创 Docker实战03|Cgroups

在上一文中,主要讲述了构建Linux容器的Namespace技术,它帮助进程隔离出自己单独的空间,但Docker是怎么限制每个空间的大小,保证它们不会互相争抢的呢?这就要用到Linux的Cgroups技术。Cgroups 是 Linux 下的一种将进程按组进行管理的机制,它提供了对一组进程及将来子进程的资源限制控制和统计的能力。这些资源包括 CPU、内存、存储、网络等。通过 Cgroups 可以方便地限制某个进程的资源占用,并且可以实时地监控进程的监控与统计信息。

2024-01-04 14:53:13 1465

原创 Docker实战02|Namespace

我们经常听到,Docker是一个使用了LinuxNamespace和Cgroups的虚拟化工具。但是,什么是LinuxNamespace,它在Docker内是怎么被使用的?说到这里,很多人就会迷茫。下面就先来介绍一下LinuxNamespace及它们是如何在容器中使用的。

2024-01-03 19:08:17 992

原创 Docker实战01|容器与开发语言

Docker 是一个开源工具,它可以将你的应用打包成一个标准格式的镜像,并且以容器的方式运行。Docker 容器将一系列软件包装在一个完整的文件系统中,这个文件系统包含应用程序运行所需要的一切:代码、运行时工具、系统工具、系统依赖,几乎有任何可以安装在服务器上的东西。这些策略保证了容器内应用程序运行环境的稳定性,不会被容器外的系统环境所影响。Docker 容器具有以下 3 个特点。轻量级:在同一台宿主机上的容器共享系统 Kernel,这使得它们可以迅速启动而且占用内存极少。

2024-01-03 12:06:57 892

原创 什么?想学Go语言的人有福了?

最新好多小伙伴想学习云原生,但是都不知道怎么去学,我建议他们先去学一下G语言,作为云原生基础语言。但是告诉我说找不到Go语言学习资料???好嘛,我连夜整理了几十本Go语言学习的pdf资料,涵盖了Go语言基础、框架、面试题目等。

2024-01-02 22:00:55 370

原创 Ingress 就应该这么用!轻松玩转Kubernetes流量入口管理

Ingress 将 HTTP 和 HTTPS 路由从集群外部公开到 集群内的服务。流量路由由入口资源上定义的规则控制。这是一个简单的示例,其中 Ingress 将其所有流量发送到一个服务:Ingress 可以配置为提供服务外部可访问的 URL、负载平衡流量、终止 SSL/TLS 以及提供基于名称的虚拟托管。Ingress 控制器负责 实现 Ingress,通常使用负载均衡器,但它也可能配置边缘路由器或其他前端来帮助处理流量。

2023-12-31 23:24:04 542

原创 Jenkins实战指南:实现自动化代码拉取和Harbor私有镜像仓库上传

前两篇中,介绍了如何搭建个人私有镜像仓库Harbor,并编写了一个goweb项目进行打包上传,本文则继续介绍如何利用jenkins 实现自动打包镜像并上传。

2023-12-28 20:27:34 754

原创 云原生必备工具!手把手教你搭建Harbor私有仓库(下)

上文中搭建的Harbor为了能够快速在本地搭建起来,因此去掉了443端口。本文中将继续介绍,如何开启ssl验证以及从其他节点拉取私有镜像仓库中的镜像。

2023-12-28 13:55:00 394

原创 云原生必备工具!手把手教你搭建Harbor私有仓库(上)

Harbor是一个开源的企业级容器镜像仓库管理系统,旨在提供安全、可信赖的容器镜像管理解决方案。它由VMware公司开发并贡献给CNCF(云原生计算基金会)进行维护。总之,Harbor是一个功能强大、安全可靠的容器镜像仓库管理系统,适用于企业级容器化环境,为用户提供了完善的容器镜像管理解决方案。

2023-12-27 22:07:50 685

原创 时间管理的“四象限”法则

时间管理四象限矩阵,顾名思义,它是一个由X轴和Y轴组成的,包括四个象限的矩阵。这里的X轴代表了事情的重要程度,越往右代表着越重要。Y轴代表了事情的紧急程度,越往上代表越紧急。而X轴Y轴组成的四个象限,分别代表了重要紧急的事,重要不紧急的事,紧急不重要的事,不紧急不重要的事,如下图所示:通过这四个象限,你可以把你每天杂乱无章的事项进行有序的归类,筛选出更重要,更紧急,优先级更高的工作和任务,并把主要的时间精力都集中在这上面。

2023-12-27 13:23:00 641

原创 揭秘Pod状态与生命周期管理的秘密(下)

上一篇文章中主要介绍了Pod的几种容器(Init、Pause),本文主要介绍Pod当中Hook的概念与使用。点击可以查看所有相关文章。

2023-12-27 08:00:00 883

原创 揭秘Pod状态与生命周期管理的秘密(中)

上一篇文章中主要介绍了Pod的基础概念与使用、删除。本文将带你一起学习Pod的几种容器(Init、Pause)点击可以查看所有相关文章。

2023-12-26 21:02:19 849

原创 揭秘Pod状态与生命周期管理的秘密(上)

这篇文章将为您揭示Pod状态与生命周期管理的关键知识,帮助您轻松掌握容器化技术的精髓。通过深入剖析Pod的生命周期,包括创建、运行、停止和删除等不同阶段的状态转换和管理方法,您将能够更好地理解和应用容器化技术。我们还将分享一些实用的技巧和最佳实践,以帮助您优化和提升容器化应用的性能和稳定性。无论您是初学者还是经验丰富的容器化技术从业者,本文都将为您提供宝贵的指导和启示。不容错过的一篇文章,让容器化技术成为您的利器,助您在快速变化的技术世界中脱颖而出!

2023-12-26 16:18:08 401

原创 打破限制,随时随地练习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 1692

原创 轻松学会在Kubernetes上一键部署WordPress!

在前文k8s部署有状态应用中,简单介绍了StatefulSet的使用。本教程将展示如何使用 Minikube 部署 WordPress 站点和 MySQL 数据库。这两个应用程序都使用 PersistentVolumes 和 PersistentVolumeClaims 来存储数据。PersistentVolume (PV) 是集群中的一块存储,由管理员手动配置,或者由 Kubernetes 使用 StorageClass动态配置。

2023-12-25 14:46:11 1380

原创 Kubectl 部署有状态应用(下)

接上文创建完StatefulSet后,本文继续介绍StatefulSet 扩展、更新、删除等内容。

2023-12-24 22:22:25 954

原创 Kubectl 部署有状态应用(上)

前面介绍了Deployment以及如何部署无状态应用。本文将继续介绍如何在k8s上部署有状态应用。

2023-12-24 21:01:26 1301

原创 Kubernetes 100个常用命令!

Kubernetes 100个常用命令!

2023-12-23 13:46:38 1187

原创 Deployment Controller详解(下)

上一篇在中介绍了Deployment Controller 的创建、更新和回滚。了解了这三个功能,基本上也就懂得了大厂PaaS平台中服务的灰度升级、失败回滚等操作是如何实现的了。接下来本文会介绍Deployment Controller的暂停和恢复部署。

2023-12-23 13:06:52 402

仿qq空间可连接自己数据库的登录平台

仿照qq空间的登陆平台,可以链接自己的数据库,可以当作自己的钓鱼网站,此工具为自己写的,请不要用作其他用途,否则后果自负

2018-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除