avatar
文章
224
标签
10
分类
10
首页
归档
标签
分类
关于
Logo技术博客
搜索
首页
归档
标签
分类
关于

技术博客

K8s采用Helm部署ingress-nginx
发表于2025-06-12|容器化|容器化
在Kubernetes(K8s)生态中,Ingress是管理集群外部访问HTTP/S路由的核心资源。而ingress-nginx作为官方维护的实现,凭借其高性能和稳定性,成为了事实上的标准。本文将介绍一种生产级的、可重复的部署方式——使用Helm结合脚本,将ingress-nginx以DaemonSet的形式部署在指定节点上,并利用hostNetwork模式实现高效的网络通信。 项目源码: github, gitee Ingress-Nginx 部署模式简介在开始之前,我们先简单回顾一下 Ingress-Nginx 常见的几种部署模式: Deployment + LoadBalancer Service: 原理: Ingress Controller Pods 由 Deployment 管理。创建一个 type: LoadBalancer 的 Service 指向这些 Pods。云厂商会自动创建并关联一个外部负载均衡器及公网 IP。 优点: 易于与公有云集成,自动获取公网 IP 和负载均衡。 缺点:...
K8s采用Helm部署nfs-subdir-external-provisioner
发表于2025-06-12|容器化|容器化
在Kubernetes(K8s)集群中,为应用提供持久化存储是一个核心需求。虽然K8s本身提供了多种存储卷类型,但对于需要多节点读写(ReadWriteMany)的场景,或者希望在私有化环境中快速搭建一个可靠共享存储的场景,hostPath或K3s默认的local-path-provisioner便显得力不从心。它们的存储与特定节点绑定,一旦节点故障,数据访问便会中断,甚至有丢失风险。 为了解决这个问题,NFS(Network File System)提供了一个经典且高效的解决方案。它允许我们在网络中共享一个目录,让集群中的所有节点都能访问,从而为Pod提供真正的共享持久化存储。 然而,手动为每个应用创建NFS对应的PersistentVolume(PV)既繁琐又容易出错。这时,nfs-subdir-external-provisioner就派上了用场。它是一个动态存储制备器(Dynamic...
RockyLinux 镜像源替换实战指南
发表于2025-06-08|运维手册|运维手册
本指南提供一套精简的 Rocky Linux 及 EPEL 镜像源替换命令,以阿里云镜像为例。所有命令均需 root 或 sudo 权限。 一、一键替换与刷新直接复制并执行以下所有命令,即可完成从备份到生效的全过程。 12345678910111213141516171819202122232425# =================== 核心替换脚本 (以阿里云为例) ===================# 1. 备份原始 repo 文件 (整目录备份,安全可靠)sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.bak# 2. 替换 Rocky Linux 基础镜像源# (注释 mirrorlist,启用并替换 baseurl,同时自动创建 .repo.bak 文件)sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e...
掌握 ssh-keygen:揭秘公钥与私钥的工作原理与生成实践
发表于2025-06-07|运维手册|运维手册
在日常的软件开发和系统管理中,我们经常需要安全地连接到远程服务器、执行 Git 操作,或者进行其他需要身份认证的网络通信。传统的密码认证方式往往存在暴力破解和中间人攻击的风险,而基于SSH密钥认证的机制,则提供了一种更强大、更安全的解决方案。 SSH(Secure Shell)密钥对由公钥和私钥组成。公钥可以公开,放置在远程服务器上;私钥则必须严格保密,存放在本地。当尝试连接时,SSH客户端会用私钥加密一段数据,服务器用对应的公钥解密验证,从而完成身份认证,无需传输敏感的密码。 本文将深入解析生成SSH密钥对的核心命令:ssh-keygen -t rsa -b 4096 -C "your_email@example.com",并指导你如何在实践中正确使用它。 一、ssh-keygen:SSH密钥生成器ssh-keygen 是一个用于生成、管理和转换SSH密钥对的实用工具。它是 OpenSSH 套件的一部分,几乎在所有类Unix系统(包括Linux、macOS)以及通过Git...
Hyper-V虚拟机新增虚拟硬盘
发表于2025-06-02|运维手册|运维手册
笔者在使用Hyper-V虚拟机进行日常运维和环境搭建时,经常会遇到存储空间不足或需要独立数据盘的情况。近期,在为某个Kubernetes集群部署Rook-Ceph分布式存储解决方案时,就遇到了需要为虚拟机动态新增多个虚拟硬盘的需求。这个过程虽然看似简单,但对于初次接触或不熟悉Hyper-V操作的用户来说,每一步的细节都值得仔细推敲。因此,本文旨在详细记录从零开始为Hyper-V虚拟机添加虚拟硬盘的整个过程,并附上详细的图文步骤,希望能为遇到类似需求的朋友提供清晰直观的指引,帮助他们高效地扩展虚拟机存储能力。 步骤 结语至此,为Hyper-V虚拟机新增虚拟硬盘的所有步骤已经详细演示完毕。通过本文的图文指南,相信您已经能够轻松地为您的虚拟机扩容,无论是为了部署复杂的分布式存储系统如Rook-Ceph,还是仅仅为了增加日常应用的数据存储空间,这些操作都是必不可少的。掌握这一技能将大大提升您在虚拟化环境下的运维效率和灵活性。希望这篇记录能确切地帮助到您,使您在面对类似需求时能够得心应手,顺利完成任务。后续笔者将继续分享更多关于Hyper-V和Linux运维的实践经验。
非root用户执行K3s集群的kubectl命令
发表于2025-05-18|容器化|容器化
在部署 K3s 轻量级 Kubernetes 集群后,默认生成的集群配置文件(kubeconfig)通常位于 /etc/rancher/k3s/k3s.yaml,且其所有者和权限设定通常只允许 root 用户访问。为了遵循安全最佳实践并在日常管理中使用普通用户执行 kubectl 命令与集群进行交互,我们需要进行一些配置。本文将详细介绍如何让非 root 用户安全、便捷地使用 kubectl 管理 K3s 集群。 背景与目的K3s 默认安装时,会在服务器上生成一个 kubeconfig 文件,这个文件包含了连接和认证到集群所需的所有信息(API Server 地址、证书、密钥等)。出于安全考虑,这个文件 /etc/rancher/k3s/k3s.yaml 通常被设置为只有 root 用户可读。 直接使用 root 用户执行 kubectl 命令是不推荐的,这会带来不必要的权限风险。我们的目标是配置一个普通用户,让他能够读取这个 kubeconfig 文件,并让 kubectl 命令知道去哪里找到它,从而以该普通用户的身份安全地管理 K3s...
Docker重启策略restart参数值的对比与选择
发表于2025-05-16|容器化|容器化
在现代后端应用部署中,容器化技术已成为标配。Docker 作为其中的佼佼者,提供了强大的容器管理功能。其中,容器的重启策略(Restart Policy)是确保应用高可用性和自我修复能力的关键一环。当容器因错误、资源问题或其他原因意外退出时,一个配置得当的重启策略能够自动尝试恢复服务,减少人工干预,提升系统韧性。 本文将深入探讨 Docker 支持的几种主要重启策略:no (默认)、always、unless-stopped 和 on-failure,并通过实例演示它们的行为差异,帮助您在不同场景下做出最佳选择。 理解重启策略的核心价值配置重启策略的核心价值在于实现容器的自我修复。这意味着: 提升应用可用性:在容器异常退出后自动重启,减少服务中断时间。 简化运维:自动化处理常见的瞬时故障导致的容器停止。 增强系统韧性:即使在 Docker守护进程(daemon)重启后,也能根据策略恢复关键容器的运行状态。 Docker 支持的重启策略概览重启策略可以应用于单个容器,在 docker container run 命令中通过 --restart 参数指定,或在 Docker...
轻松访问K8s集群内部:Windows开发机直连Pod网络实战
发表于2025-05-12|容器化|容器化
作为后端开发者,我们经常需要在本地开发环境中与Kubernetes集群进行交互,特别是在调试或本地测试时,能够直接访问集群内部的Pod和服务网络会极大提高效率。本文将详细介绍如何在同一个局域网环境下,通过配置静态路由和DNS,使您的Windows开发机能够直接访问运行在Linux机器上K3s集群中的Pod网络(以访问redis-operator部署的redis-cluster为例)。 这种方法利用了网络第三层(网络层)的静态路由原理,直接告诉您的Windows系统或网络网关,发往特定IP段(K8s Pod/Service CIDR)的流量应该导向哪个K8s节点。 适用场景与优缺点适用场景: Kubernetes集群(如K3s)和开发机器在同一个局域网内。 您有权限在Windows开发机器上添加静态路由。 主要用于内部开发或测试环境,对网络暴露有一定容忍度。 优点: 配置简单: 无需额外部署复杂组件,仅需在开发机上配置静态路由和DNS。 透明高效: 对开发者几乎透明,网络访问直达,性能较好。 原生体验: 可以像访问局域网内其他服务一样访问Pod...
打通本地开发环境与 K8s 集群内部网络的利器 Telepresence
发表于2025-05-12|容器化|容器化
作为后端开发人员,我们经常面临这样的挑战:如何在与生产环境高度一致的环境中测试和调试我们的应用程序。Kubernetes 虽然功能强大,但在尝试从本地开发机器与集群内部运行的服务进行交互时,可能会引入复杂性。为每个开发迭代都通过 NodePort 或 Ingress 暴露服务不仅繁琐,而且并非总是安全的。 Telepresence 应运而生:这是一个 CNCF(云原生计算基金会)的项目,它能将您的本地开发环境“传送”到您的 Kubernetes 集群中。它在您的本地机器和集群之间代理网络流量,使您本地运行的代码能够像直接在 Pod内部运行一样访问集群服务(如数据库、消息队列或其他微服务)。同样,它也可以将发往集群中某个服务的流量重定向到您的本地机器。 本指南将引导您在 Windows 计算机上设置 Telepresence,以连接到您的 Kubernetes 集群,从而使您能够(例如)使用本地工具直接访问内部的 Redis 集群。 目标读者: 希望简化其 Kubernetes 开发工作流程的 Windows 用户。技术栈重点: Kubernetes (任何发行版,如原生...
K8s 网络揭秘:ClusterIP, Headless, NodePort, LoadBalancer 与 Ingress 全解析
发表于2025-05-11|容器化|容器化
在 Kubernetes (K8s) 的世界中,Pod 是最基本的调度单元,但它们是短暂的,IP 地址会随着 Pod 的销毁和重建而改变。为了给应用提供一个稳定的访问入口,Kubernetes 引入了 Service 的概念。Service 为一组功能相同的 Pod 提供了一个统一的抽象,并赋予它们一个虚拟 IP (VIP)。然而,Service 的类型多种多样,每种都有其特定的适用场景。作为后端开发人员,理解 ClusterIP, Headless Service, NodePort, LoadBalancer 以及 Ingress 之间的区别至关重要,这能帮助我们更高效地设计和部署可扩展的应用。 接下来,让我们深入探讨这些核心概念。 1. ClusterIP:集群内部的稳定门户 是什么?ClusterIP 是 Kubernetes Service 的默认类型。当你创建一个 Service 但不显式指定类型时,它就是 ClusterIP。它会为 Service 分配一个集群内部唯一的虚拟 IP 地址。 工作原理:这个虚拟 IP 地址只能在集群内部访问。集群内的其他...
1…8910…23
avatar
李博帅
文章
224
标签
10
分类
10
Follow Me
公告
记录自己的学习成长
最新文章
Debian 13 安装 Docker 与最佳配置2026-01-27
Java并发-为什么要区分不同线程池而不使用统一的大线程池2026-01-26
Java并发-彻底搞懂 CompletableFuture 的线程切换规则2026-01-26
Debian 13 开发环境系统优化指南2026-01-23
Flink1.18.1本地idea源码调试环境搭建2026-01-23
分类
  • java51
  • 前端1
  • 大数据24
  • 容器化43
  • 杂货小铺18
  • 环境搭建15
  • 监控预警7
  • 算法8
标签
容器化 杂货小铺 java 监控预警 大数据 前端 计科基础 算法 运维手册 环境搭建
归档
  • 一月 2026 14
  • 十二月 2025 3
  • 十一月 2025 10
  • 十月 2025 1
  • 八月 2025 16
  • 七月 2025 19
  • 六月 2025 22
  • 五月 2025 11
网站信息
文章数目 :
224
运行时间 :
本站总字数 :
388.6k
最后更新时间 :
©2022 - 2026 By 李博帅
框架 Hexo 7.3.0|主题 Butterfly 5.3.5

豫ICP备2025118913号

搜索
数据加载中