自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 Git 速查表:中级用户必备的 12 个 Git 命令

虽然在使用 Git 的最基本级别时不需要这些中级命令,但它们可以帮助用户提高使用 Git 的效率。它们提供了一组强大的功能,可以帮助您成为一个全面发展的开发者,这通常意味着能够以创造性的方式解决问题。

2023-08-30 17:42:44 184

原创 WebAssembly 在云原生中的实践指南

WebAssembly(Wasm)是一种通用字节码技术,它可以将其他编程语言(如 Go、Rust、C/C++ 等)的程序代码编译为可在浏览器环境直接执行的字节码程序。WebAssembly 的初衷之一是解决 JavaScript 的性能问题,让 Web 应用程序能够达到与本地原生应用程序类似的性能。作为底层 VM 的通用、开放、高效的抽象,许多编程语言,例如C、C++ 和 Rust,都可以将现有应用程序编译成 Wasm 的目标代码,以便它们在浏览器中运行。

2023-08-30 17:36:03 1386

翻译 Git 速查表:初学者必备的 12 个 Git 命令

Git 是世界上最流行的版本控制系统(VCS),很难想象开发人员没有它会是什么样子。现在,绝大多数开发人员,包括个人和大公司,都在项目中选择 Git。对于初学者来说,第一个问题就是如何使用 Git?在本文中,我将介绍 12 个对初学者特别重要的 Git 命令。您可以将本篇文章作为 Git 命令的速查表,以便在以后查找使用。现在让我们开始吧。在本文中,我讨论了初学者必备的 12 个 Git 命令,您可以将本篇文章作为 Git 速查表,在以后的参考中使用。

2023-04-28 00:13:59 218 1

原创 使用 Kubectl Patch 命令更新资源

本文介绍了使用 kubectl patch 命令更新 Kubernetes 集群中资源对象的方法。Kubectl patch 命令允许用户对资源对象的指定字段进行局部更新,提高了更新操作的灵活性。文章介绍了 kubectl patch 命令的语法和使用方法,包括三种 strategic patch, JSON merge patch, JSON patch 3 种类型,并结合了具体的示例进行说明。

2023-04-23 18:22:46 3046

原创 Kubernetes 多集群网络方案系列 2 -- Submariner 监控

在这篇文章里,我们向大家展示了如何运用 Prometheus 来收集与 Submariner 相关的监控指标,并利用 Grafana 以可视化的方式展示监控数据,包括 Submariner 集群间的连接状态、连接延迟以及 DNS 请求等各项指标。此外,我们还借助 Operator 简化了 Prometheus 和 Grafana 的配置与管理过程。最后,文章还阐述了如何通过 Prometheus Federation 将多个集群中的 Prometheus 实例指标汇聚到一个中心集群,以方便查询和展示。

2023-04-16 20:02:16 642

原创 Kubernetes 多集群网络方案系列 1 -- Submariner 介绍

本文首先介绍了 Submariner 的架构,包括 Broker、Gateway Engine、Route Agent、Service Discovery、Globalnet 和 Submariner Operator。接着,通过实验向读者展示了 Submariner 在跨集群场景中如何处理 ClusterIP 和 Headless 类型的流量。最后,演示了 Submariner 的 Globalnet 是如何通过 GlobalCIDR 支持不同集群间存在 CIDR 重叠的情况。

2023-04-12 12:39:01 1836 1

原创 数据库 CI/CD 工具 -- Bytebase 介绍

在本文中,我们首先向读者展示了 Bytebase 的安装部署过程,以及其查询和更改的基本功能。接着,我们体验了 Bytebase 1.14.0 最新版本所带来的 ChatSQL 功能,该功能基于 OpenAI,能够根据我们的问题或需求生成相应的 SQL 语句。最后,我们实践了 Bytebase 的 GitOps 功能,通过结合版本控制系统,可以跟踪数据库结构的变化,方便我们对数据库变更进行审查、协作和回滚操作。

2023-03-29 10:36:19 2000

原创 使用 Ingest Pipeline 在 Elasticsearch 中对数据进行预处理

Ingest pipeline 是 Elasticsearch 的一个非常实用的功能,它能够帮助用户在数据进入 Elasticsearch 索引之前对其进行预处理,从而提高搜索和分析的效率和准确性。

2023-02-16 13:31:02 923

原创 使用 ClusterResourceSet 为 Cluster API 集群自动安装 CNI 插件

在本文中,我们将会通过 ClusterResourceSet 来自动为工作负载集群安装 Cilium CNI 插件。

2022-12-29 12:27:41 770

原创 在 Istio 服务网格中使用 Argo Rollouts 实现智能的渐进式发布

在本文中我们介绍了如何使用 Argo Rollouts 结合 Istio 服务网格中丰富的流量治理以及可观测性能力;并通过 Argo Rollouts 提供的 Analysis 机制,在应用升级时对应用的健康状态进行分析,根据分析结果自动决定是否继续更新或者回滚,从而实现了智能的渐进式发布。

2022-12-10 13:48:13 907 1

原创 vcluster -- 基于虚拟集群的多租户方案

虚拟集群(virtual cluster, 简称 vcluster)是在常规的 Kubernetes 集群之上运行的一个功能齐全,轻量级,隔离性良好的 Kubernetes 集群。虚拟集群的核心思想是提供运行在“真实”Kubernetes 集群之上隔离的 Kubernetes 控制平面(例如 API Server)。与完全独立的“真实“集群相比,虚拟集群没有自己的工作节点或者网络,工作负载实际上还是在底层宿主集群上调度。

2022-10-19 11:06:21 1314

原创 Istio Ambient Mesh 介绍

1 Ambient Mesh 介绍Istio 的传统模式是将 Envoy proxy 作为 sidecar 部署在工作负载的 Pod 中,虽然与重构应用程序相比,sidecar 具有显著的优势,但是仍然会产生一些限制:侵入性:sidecar 必须通过修改 Kubernetes Pod 的配置和重定向流量来“注入”应用程序。因此,安装和升级 sidecar 需要重新启动 Pod,这将会对工作负载产生影响。资源利用率低:由于在每个工作负载 Pod 都注入了 sidecar 代理 ,因此 Pod 必须为

2022-09-15 14:34:29 2333

原创 使用 ECK 在 Kubernetes 集群中管理 Elastic Stack

使用 ECK 在 Kubernetes 集群中管理 Elastic Stack

2022-08-30 21:31:47 2103 3

原创 使用 Containerlab + Kind 快速部署 Cilium BGP 环境

1 前置知识1.1 Cilium 介绍Cilium 是一款基于 eBPF 技术的 Kubernetes CNI 插件,Cilium 在其官网上对产品的定位为 “eBPF-based Networking, Observability, Security”,致力于为容器工作负载提供基于 eBPF 的网络、可观察性和安全性的一系列解决方案。Cilium 通过使用 eBPF 技术在 Linux 内部动态插入一些控制逻辑,可以在不修改应用程序代码或容器配置的情况下进行应用和更新,从而实现网络、可观察性和安全性相

2022-08-28 16:39:17 1715 1

原创 如何往 Kafka 发送大消息?

默认情况下,Kafka topic 中每条消息的默认限制为 1MB。这是因为在 Kafka 中,非常大的消息被认为是低效和反模式的。然而,有时候你可能需要往 Kafka 中发送大消息。在本文中我们将研究在 Kafka 中处理大消息的两种方法。选项 1:使用外部存储将大消息(例如视频文件)发送到外部存储,在 Kafka 中只保存这些文件的引用,例如文件的 URL。外部存储可以是云存储(例如 Amazon S3),也可以是网络存储(NAS)或者 HDFS 等本地大型文件存储系统。选项 2:修改 Kafk

2022-06-17 22:27:01 1166

原创 实现 LRU 缓存算法

1 LRU 缓存介绍LRU 算法全称是最近最少使用算法(Least Recently Use),是一种简单的缓存策略。顾名思义,LRU 算法会选出最近最少使用的数据进行淘汰。那么什么是缓存呢?缓存专业点可以叫一种提高数据读取性能的技术,可以有效解决存储器性能和容量的矛盾,是一种空间换时间的设计思想,比如我们常见的内存是硬盘的缓存,Cache 是内存的缓存,浏览器本地存储是网络访问的缓存......LRU 有许多应用场景,例如:操作系统底层的内存管理。缓存服务,例如 Redis,当数据满的时候就要

2022-05-18 14:21:27 4093

原创 Kubernetes 中数据包的生命周期 -- 第 4 部分

本文翻译自:Life of a Packet in Kubernetes — Part 4 [1]作者:Dinesh Kumar Ramasamy 本文在原文的基础上做了适当的修改,如有疑问请查阅原文。 本文是 Kubernetes 中数据包的生命周期系列文章的第 4 部分,我们将会介绍 Kubernetes 中的 Ingress 资源对象和 Ingress Controller。Ingress Controller 是一个控制器,它监视 Kubernetes API Server 对 Ingre.

2022-05-15 17:28:34 347

原创 Cilium 多集群 ClusterMesh 介绍

Cluster Mesh 是 Cilium 的多集群实现,可以帮助 Cilium 实现跨数据中心、跨 VPC 的多 Kubernetes 集群管理,ClusterMesh 主要有以下功能:1.通过隧道或直接路由的方式,在多个 Kubernetes 集群间进行 Pod IP 路由,而无需任何网关或代理。2.使用标准 Kubernetes 服务发现机制。3.跨多个集群的网络策略。策略可以使用 Kubernetes 原生的 NetworkPolicy 资源或者扩展的 CiliumNetworkPolicy

2022-05-11 18:40:32 1460 1

原创 Kubernetes 中数据包的生命周期 -- 第 3 部分

本文翻译自:Life of a Packet in Kubernetes — Part 3 [1]作者:Dinesh Kumar Ramasamy 本文在原文的基础上做了适当的修改,如有疑问请查阅原文。本文是 Kubernetes 中数据包的生命周期系列文章的第 3 部分。我们将讨论 Kubernetes 的 kube-proxy 组件如何使用 iptables 来控制流量。 了解 kube-proxy 在 Kubernetes 环境中的作用以及它如何使用 iptables 来控制流量非常重要。.

2022-05-06 15:07:41 875

原创 ECA 认证备考指南

ECA 简介ECA(Elastic Certified Analyst,Elastic 认证分析师)是 Elastic 针对 Kibana 进行数据可视化和分析而设计的一门考试。考试费用 300 美金,考试时长 2 小时,2022 年 4 月 28 号之后升级为 7.15 版本,我这次考的是 7.6 版本。考试大纲及常见问题考试大纲:Elastic Certified Analyst Exam [1],其中标注了 7.6 和 7.15 两个版本考点的变化。在 ECA 考试中主要考察 3 个部分:

2022-04-28 22:29:52 908

原创 Kubernetes 中数据包的生命周期 -- 第 2 部分

本文翻译自:Life of a Packet in Kubernetes — Part 2 [1]作者:Dinesh Kumar Ramasamy 本文在原文的基础上做了适当的修改,如有疑问请查阅原文。 正如我们在第 1 部分中所讨论的,CNI 插件在 Kubernetes 网络中起着至关重要的作用。当前有许多第三方 CNI 插件可供使用,Calico 便是其中之一。凭借着良好的易用性以及对多种网络架构的支持,Calico 获得了许多工程师的青睐。Calico 支持广泛的平台,包括 Kubern.

2022-04-24 12:16:52 1323

原创 使用 HTTPS 加密 Ingress 流量

1.安装cfsslCFSSL是CloudFlare开源的一款PKI/TLS工具。 CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务,使用Go语言编写。下载地址:https://pkg.cfssl.org/R1.2/cfssl_linux-amd64https://pkg.cfssl.org/R1.2/cfssljson_linux-amd642.创建CA证书#得到的json文件保持默认cfssl print-defaults config &g

2022-04-21 22:34:54 3474

原创 Kubernetes 中数据包的生命周期 -- 第 1 部分

本文翻译自:Life of a Packet in Kubernetes — Part 1 [1]作者:Dinesh Kumar Ramasamy本文在原文的基础上做了适当的修改,如有疑问请查阅原文。Kubernetes 集群中的网络可能会令人感到有点困惑,即使是对于拥有虚拟网络和路由实践经验的工程师来说也是如此。本系列文章将分为 4 个部分,帮助你理解基本的 Kubernetes 网络,本文属于第一部分。Part 11.Linux 命名空间(Namespaces)2.容器网络(Netw.

2022-04-21 10:39:33 236

原创 在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证

API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。Kubernetes 支持多种身份验证的方式,本文将对 OpenID Connect 认证进行介绍。1 OpenID Connect(OIDC)介绍OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方应用访问他们存储在其他服务提供者上的信息

2022-04-06 11:25:49 3535 2

原创 Kubernetes 中的对象是如何删除的:Finalizers 字段介绍

前言Kubernetes 中的对象删除并不像表面上看起来那么简单,删除对象涉及一系列过程,例如对象的级联和非级联删除,在删除之前检查以确定是否可以安全删除对象等等。这些都是通过称为 Finalizers(终结器)的 API 对象实现的。Finalizers 终结器Finalizers 是由字符串组成的数组,当 Finalizers 字段中存在元素时,相关资源不允许被删除,Finalizers 是 Kubernetes 资源删除流程中的一种拦截机制,能够让控制器实现异步的删除前(Pre-delete)回

2022-04-02 20:25:50 1431

原创 Elasticsearch 多种跨机房灾备方案对比与实战解读

本文将会介绍几种 Elasticsearch 常见的灾备方案,同时提供了 Demo 案例方便大家动手体验。方案定期快照跨机房部署集群应用双写借助消息队列实现双写CCR 跨集群复制极限网关描述定期将索引备份到外部存储,例如 S3,HDFS。备份的数据可以在备集

2022-01-04 22:03:59 2394

原创 Docker Rootless 在非特权模式下运行 Docker

Docker Rootless 基本概念Rootless 模式允许以非 root 用户身份运行 Docker 守护进程(dockerd)和容器,以缓解 Docker 守护进程和容器运行时中潜在的漏洞。Rootless 模式是在 Docker v19.03 版本作为实验性功能引入的,在 Docker v20.10 版本 GA。Rootless 模式目前对 Cgroups 资源控制,Apparmor 安全配置,Overlay 网络,存储驱动等还有一定的限制,暂时还不能完全取代 “Rootful” Dock

2021-12-26 21:15:42 4522

原创 ArgoCD 简明教程

Argo CD 简介Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具,它的配置和使用非常简单,并且自带一个简单易用的 Dashboard 页面,并且支持多种配置管理/模板工具(例如 Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)。Argo CD 被实现为一个 Kubernetes 控制器,它持续监控正在运行的应用程序并将当前的实时状态与所需的目标状态(例如 Git 仓库中的配置)进行比较,在 Git 仓库更

2021-12-19 19:07:00 21886

原创 使用 ezctl 工具部署和管理 Kubernetes 集群

1 ezctl 命令行介绍kubeasz 项目致力于快速部署高可用的 Kubernetes 集群,同时也提供了关于 Kubernetes 详细的学习资料,在这里强烈推荐给初学者。kubeasz 项目地址:https://github.com/easzlab/kubeasz 。kubeasz 项目使用 ezctl 方便地创建和管理多个 Kubernetes 集群,ezctl 使用 shell 脚本封装 ansible-playbook 执行命令,它十分轻量、简单和易于扩展。查看 ezctl 工具的命令

2021-12-14 21:07:50 1983

原创 GitLab CI/CD 自动化构建与发布实践

流程介绍CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。这篇文章中,我将会介绍基于 GitLab CI/CD 的自动化构建与发布实践。如下图所示,整个流程将分为几个部分:1.首先开发人员在本地完成项目的开发之后,将代码推送到 Gitlab 仓库中。2.当代码提交到 Gitlab 仓库时,会触发 Pipeline,Gitlab Runner 会根据 .gitlab-ci.yml 配置文件运行 Pipeline 中各阶段的任

2021-11-21 22:55:49 7102

原创 Nebula 分布式图数据库介绍

1 什么是图(Graph)本文介绍的图和日常生活中常见的图片有所不同。通常,在英文中,为了区分这两种不同的图,前者会称为 Image,后者称为 Graph。在中文中,前者会强调为“图片”,后者会强调为“拓扑图”、“网络图”等。一张图(Graph)由一些小圆点(称为顶点或节点,即 Vertex)和连接这些圆点的直线或曲线(称为边,即 Edge)组成。“图(Graph)“这一名词最早由西尔维斯特在 1878 年提出。图还可以分为无向图和有向图。2 什么是图数据库图数据库是专门存储庞大的图形网络并从

2021-11-07 00:07:28 7388 2

原创 Kafka 生产环境部署指南

1 Kafka 基本概念和系统架构在 Kafka 集群中存在以下几种节点角色:Producer:生产者,生产消息并推送到 Kafka 集群中。Consumer:消费者,从 Kafka 集群中拉取并消费消息。可以将一个和多个 Consumer 指定为一个 Consumer Group(消费者组),一个消费者组在逻辑上是一个订阅者,不同消费者组之间可以消费相同的数据,消费者组之间互不干扰。Broker:一台 Kafka 服务器就是一个 Broker,一个 Kafka 集群由多个 Broker 组成。

2021-10-16 23:31:50 1168

原创 使用 Ansible 部署 Elasticsearch 集群

Elasticsearch 是一款开源的分布式搜索和分析引擎,我们可以在其中存储海量的数据并且快速地进行搜索,然而部署 Elasticsearch 集群的过程耗时且繁琐,好在 Elasticsearch 官方为我们提供了 Ansible Playbook 方便我们快速部署 Elasticsearch 集群。ansible-elasticsearch github 地址:https://github.com/elastic/ansible-elasticsearch。 本文将演示使用 Ansible 搭建一套

2021-10-08 22:08:57 1121

原创 Spark 系列教程(2)运行模式介绍

Spark 运行模式Apache Spark 是用于大规模数据处理的统一分析引擎,它提供了 Java、Scala、Python 和 R 语言的高级 API,以及一个支持通用的执行图计算的优化引擎。Spark Core 是 Spark 的核心模块,负责任务调度、内存管理等功能。Spark Core 的实现依赖于 RDD(Resilient Distributed Datasets,弹性分布式数据集)的程序抽象概念。在 Spark Core 的基础上,Spark 提供了一系列面向不同应用需求的组件,包括使

2021-10-07 14:56:10 711

原创 Spark 系列教程(1)Word Count

基本概要Spark 是一种快速、通用、可扩展的大数据分析引擎,是基于内存计算的大数据并行计算框架。Spark 在 2009 年诞生于加州大学伯克利分校 AMP 实验室,2010 年开源,2014 年 2月成为 Apache 顶级项目。本文是 Spark 系列教程的第一篇,通过大数据中的 “Hello World” – Word Count 实验带领大家快速上手 Spark。Word Count 顾名思义就是对单词进行计数,我们首先会对文件中的单词做统计计数,然后输出出现次数最多的 3 个单词。前提条件

2021-09-25 22:37:52 1354

原创 Centos7 部署 Zabbix 5.4 高可用集群

Zabbix 是一个企业级分布式开源监控解决方案,能够监控各种网络设备、服务器、中间件和应用程序等等。Zabbix 支持主动轮询(polling)和被动捕获(trapping)两种方式获取数据。Zabbix 所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问,并且提供了完善的 API 接口便于二次开发。Zabbix 有以下几个主要组件:Zabbix Server:是 Zabbix 软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。Zabbix Web:通过

2021-09-23 20:39:39 2349 1

原创 Elasticsearch 源码学习(1) 源码编译调试

克隆 Elasticsearch 项目首先 fork 一份 Elasticsearch 项目 的代码到自己的 github 仓库,这样看代码的时候写注释可以提交到自己的仓库。然后将代码克隆到本地。git clone https://github.com/cr7258/elasticsearch切换到指定发布版本,这里我们基于 7.14.1 版本进行学习。git checkout v7.14.1版本要求我们编译的是 Elasticsearch 7.14.1 版本,在源码根目录下的 CON

2021-09-21 19:28:26 818 1

原创 Canal Admin 高可用集群使用教程

Canal Admin 架构Canal 1.1.4 版本引入了 Canal Admin,提供了统一管理 Canal Server 的 WebUI 界面。Canal Admin 的核心概念主要有:Instance:对应 Canal Server 里的 Instance,一个最小的订阅 MySQL 的队列。Server:对应 Canal Server,一个 Server 里可以包含多个 Instance,Canal Server 负责订阅 MySQL 的 binlog 数据,可以将数据输出到消息队列或者

2021-09-17 13:14:59 1852 2

原创 Kafka 常用工具脚本总结

系统启动 Kafka-daemon 参数可以让 Kafka 在后台运行。kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties指定 JMX 端口启动JMX 的全称为 Java Management Extensions。 顾名思义,是管理 Java 的一种扩展,通过 JMX 可以方便我们监控 Kafka 的内存,线程,CPU 的使用情况,以及生产和消费消息的指标。JMX_PORT=9999 kafka-se

2021-09-13 21:47:03 660

原创 可视化数据同步迁移工具 CloudCanal

CloudCanal 介绍CloudCanal 是一款数据迁移同步工具,提供友好的可视化操作界面,支持多种数据源间的数据迁移、数据同步、结构迁移、数据校验。CloudCanal 核心团队成员来自阿里巴巴中间件和数据库团队, 长期从事分布式数据库、数据库中间件、应用中间件工作。CloudCanal 在 MySQL binlog 解析使用了 Canal 部分代码,其他均为自主研发,并且对 Canal 部分代码进行了大量重构,修复诸多问题并优化性能。Canal 在 CloudCanal 中的位置,可以用以下

2021-09-12 15:50:37 7640 1

空空如也

空空如也

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

TA关注的人

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