Flink1.18本地idea源码调试环境搭建

Flink1.18本地idea源码调试环境搭建

Apache Flink 作为业界领先的流处理和批处理统一计算引擎,其强大的功能与复杂的内部机制吸引了无数开发者深入探索。对于后端开发者而言,能够直接在本地 IDE 中调试 Flink 源码,无疑是提升理解、快速定位问题、甚至参与社区贡献的利器。然而,搭建这样一个庞大项目的本地调试环境,尤其是特定版本如 Flink 1.18,往往涉及到诸多配置细节,令不少初学者望而却步。本篇博文旨在提供一份详尽的、按部就班的指南,帮助您在 Windows 系统下,使用 IntelliJ IDEA 顺利搭建起 Flink 1.18 的源码调试环境。通过本文的指引,您将能够轻松配置项目、编译源码,并成功启动一个可供调试的本地 Flink Standalone 集群,为您的 Flink 深度学习之旅奠定坚实基础。

阅读更多
根治 Git 常见报错:掌握这些核心配置,让开发更顺畅!

根治 Git 常见报错:掌握这些核心配置,让开发更顺畅!

作为后端开发人员,或者任何与代码版本控制打交道的人,Git 绝对是我们日常工作中不可或缺的工具。然而,你是否也曾遇到过一些令人抓狂的 Git 报错,比如文件路径过长、中文文件名乱码,或者恼人的换行符冲突?这些“小问题”往往看似不起眼,却可能在我们辛辛苦苦的开发过程中投下令人沮丧的阴影。

今天,我就来分享几个我个人在实际工作中总结并使用的 Git 核心配置,它们就像是“魔术开关”,能帮你解决一些常见的痛点,让你的 Git 使用体验更加顺畅。

注意: 文中提到的某些配置涉及系统底层行为,请在理解其作用的基础上谨慎使用,特别是第一个 core.protectNTFS false,它可能降低某些文件系统的安全性。

阅读更多
Hyper-V虚拟机新增虚拟硬盘

Hyper-V虚拟机新增虚拟硬盘

笔者在使用Hyper-V虚拟机进行日常运维和环境搭建时,经常会遇到存储空间不足或需要独立数据盘的情况。近期,在为某个Kubernetes集群部署Rook-Ceph分布式存储解决方案时,就遇到了需要为虚拟机动态新增多个虚拟硬盘的需求。这个过程虽然看似简单,但对于初次接触或不熟悉Hyper-V操作的用户来说,每一步的细节都值得仔细推敲。因此,本文旨在详细记录从零开始为Hyper-V虚拟机添加虚拟硬盘的整个过程,并附上详细的图文步骤,希望能为遇到类似需求的朋友提供清晰直观的指引,帮助他们高效地扩展虚拟机存储能力。

阅读更多
非root用户执行K3s集群的kubectl命令

非root用户执行K3s集群的kubectl命令

在部署 K3s 轻量级 Kubernetes 集群后,默认生成的集群配置文件(kubeconfig)通常位于 /etc/rancher/k3s/k3s.yaml,且其所有者和权限设定通常只允许 root 用户访问。为了遵循安全最佳实践并在日常管理中使用普通用户执行 kubectl 命令与集群进行交互,我们需要进行一些配置。本文将详细介绍如何让非 root 用户安全、便捷地使用 kubectl 管理 K3s 集群。

阅读更多
Docker重启策略restart参数值的对比与选择

Docker重启策略restart参数值的对比与选择

在现代后端应用部署中,容器化技术已成为标配。Docker 作为其中的佼佼者,提供了强大的容器管理功能。其中,容器的重启策略(Restart Policy)是确保应用高可用性和自我修复能力的关键一环。当容器因错误、资源问题或其他原因意外退出时,一个配置得当的重启策略能够自动尝试恢复服务,减少人工干预,提升系统韧性。

本文将深入探讨 Docker 支持的几种主要重启策略:no (默认)、alwaysunless-stoppedon-failure,并通过实例演示它们的行为差异,帮助您在不同场景下做出最佳选择。

阅读更多
轻松访问K8s集群内部:Windows开发机直连Pod网络实战

轻松访问K8s集群内部:Windows开发机直连Pod网络实战

作为后端开发者,我们经常需要在本地开发环境中与Kubernetes集群进行交互,特别是在调试或本地测试时,能够直接访问集群内部的Pod和服务网络会极大提高效率。本文将详细介绍如何在同一个局域网环境下,通过配置静态路由和DNS,使您的Windows开发机能够直接访问运行在Linux机器上K3s集群中的Pod网络(以访问redis-operator部署的redis-cluster为例)。

这种方法利用了网络第三层(网络层)的静态路由原理,直接告诉您的Windows系统或网络网关,发往特定IP段(K8s Pod/Service CIDR)的流量应该导向哪个K8s节点。

阅读更多
打通本地开发环境与 K8s 集群内部网络的利器 Telepresence

打通本地开发环境与 K8s 集群内部网络的利器 Telepresence

作为后端开发人员,我们经常面临这样的挑战:如何在与生产环境高度一致的环境中测试和调试我们的应用程序。Kubernetes 虽然功能强大,但在尝试从本地开发机器与集群内部运行的服务进行交互时,可能会引入复杂性。为每个开发迭代都通过 NodePort 或 Ingress 暴露服务不仅繁琐,而且并非总是安全的。

Telepresence 应运而生:这是一个 CNCF(云原生计算基金会)的项目,它能将您的本地开发环境“传送”到您的 Kubernetes 集群中。它在您的本地机器和集群之间代理网络流量,使您本地运行的代码能够像直接在 Pod内部运行一样访问集群服务(如数据库、消息队列或其他微服务)。同样,它也可以将发往集群中某个服务的流量重定向到您的本地机器。

本指南将引导您在 Windows 计算机上设置 Telepresence,以连接到您的 Kubernetes 集群,从而使您能够(例如)使用本地工具直接访问内部的 Redis 集群。

目标读者: 希望简化其 Kubernetes 开发工作流程的 Windows 用户。
技术栈重点: Kubernetes (任何发行版,如原生 K8s、K3s、EKS、GKE、AKS)、Windows、PowerShell。

阅读更多
K8s 网络揭秘:ClusterIP, Headless, NodePort, LoadBalancer 与 Ingress 全解析

K8s 网络揭秘:ClusterIP, Headless, NodePort, LoadBalancer 与 Ingress 全解析

在 Kubernetes (K8s) 的世界中,Pod 是最基本的调度单元,但它们是短暂的,IP 地址会随着 Pod 的销毁和重建而改变。为了给应用提供一个稳定的访问入口,Kubernetes 引入了 Service 的概念。Service 为一组功能相同的 Pod 提供了一个统一的抽象,并赋予它们一个虚拟 IP (VIP)。然而,Service 的类型多种多样,每种都有其特定的适用场景。作为后端开发人员,理解 ClusterIP, Headless Service, NodePort, LoadBalancer 以及 Ingress 之间的区别至关重要,这能帮助我们更高效地设计和部署可扩展的应用。

接下来,让我们深入探讨这些核心概念。

阅读更多
K8s采用Operator部署redis-cluster实战指南

K8s采用Operator部署redis-cluster实战指南

本文将指导您使用 Kubernetes Operator 在 K8s 集群中,高效部署一个高可用的 Redis Cluster。此方案利用 Redis Operator (来自 Opstree) 来自动化 Redis 集群的创建、配置和管理,实现声明式部署。我们将默认配置3主3从的集群,并同样依赖预配置的 StorageClass (如基于 NFS) 实现持久化存储。

阅读更多
K8s包管理利器Helm入门指南

K8s包管理利器Helm入门指南

大家好!作为一名后端开发者,我们在构建和部署可扩展应用时,经常与 Kubernetes 打交道。Kubernetes 本身非常强大,但管理其上的应用程序配置和部署流程有时会变得复杂。这时,Helm 就闪亮登场了!Helm 被称为 “Kubernetes 的包管理器”,它极大地简化了 Kubernetes 应用的查找、分享、安装和升级过程。

这篇博文将作为一份全面的入门指南,带你了解 什么是 Helm为什么需要它,如何在你的 Linux 环境中 手动安装 Helm,并掌握 Helm 仓库管理Chart 的基本操作,为高效管理 Kubernetes 应用打下坚实的基础。

阅读更多