SSH 使用指南

SSH 使用指南:从基础到服务器密钥登录 什么是 SSH? SSH (Secure Shell) 是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。它通过加密技术保护通信安全,防止信息泄露和中间人攻击,是系统管理员和开发人员管理远程服务器的必备工具。 基本 SSH 连接 最基本的 SSH 连接命令格式如下: ssh username@hostname 例如,要连接到 IP 为 192.168.1.100 的服务器,用户名为 admin: ssh [email protected] 首次连接时会提示验证服务器指纹: The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)? 输入 yes 后,服务器指纹会被保存在本地 ~/.ssh/known_hosts 文件中,以后连接时会自动验证。 SSH 配置文件 SSH 客户端配置文件 ~/.ssh/config 可以简化连接命令。例如: Host myserver HostName 192.168.1.100 User admin Port 2222 配置后,只需输入 ssh myserver 即可连接。...

2025年05月11日 · 2 min · Leanku

Prometheus + Grafana + Alertmanager轻量级监控告警系统

Prometheus + Grafana + Alertmanager轻量级监控告警系统 一、工具简介与官网 工具 作用 官网文档地址 Prometheus 指标采集、存储与告警规则管理 prometheus.io/docs Node Exporter 暴露服务器硬件/OS指标 github.com/prometheus/node_exporter Alertmanager 告警聚合与通知发送 prometheus.io/docs/alerting Grafana 数据可视化与仪表盘 grafana.com/docs 二、安装与配置 1. Prometheus 安装 1.1 下载与解压 wget https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz tar xvf prometheus-2.51.0.linux-amd64.tar.gz cd prometheus-2.51.0.linux-amd64 1.2 配置监控目标 编辑 prometheus.yml: global: scrape\_interval: 15s evaluation\_interval: 15s scrape\_configs: \- job\_name: "prometheus" \# 监控自身 static\_configs: \- targets: \["localhost:9090"\] \- job\_name: "node" \# 监控服务器 static\_configs: \- targets: \["<NODE\_IP>:9100"\] \# 替换为Node Exporter的IP 1.3 启动 Prometheus ./prometheus \--config....

2025年05月11日 · 4 min · Leanku

高并发技术体系

高并发技术体系概要 主要为基础理论知识 第一部分:高并发保护机制 限流 熔断 降级 重试 隔离 缓存保护 超时 第二部分:并发模型 线程模型 协程模型 事件驱动模型 Reactor模型 第三部分:资源池化 连接池 线程池 协程池 对象池 第四部分:异步架构 MQ 事件驱动 削峰填谷 异步任务 第五部分:微服务治理 注册中心 服务发现 配置中心 负载均衡 服务调用 API Gateway 链路追踪 服务监控 日志系统

2025年05月10日 · 1 min · Leanku

Git创建不继承内容的新分支

git filter-branch 清理误提交大文件 问题概述: 在当前项目中放有大文件(超过100M)package/grpc.tar.gz,进行了git add,commit 并push, push过程中出现了错误如: remote: error: File package/grpc.tar.gz is 973.06 MB; this exceeds GitHub's file size limit of 100.00 MB 这个问题会导致后面的提交以及push出错 git filter-branch 用 git filter-branch 删除历史中所有的 grpc.tar.gz git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch package/grpc.tar.gz" \ --prune-empty -- lite-AlmaLinux 💡 说明:这个命令会清理当前分支里所有 commit 中的 package/grpc.tar.gz 清理垃圾对象并压缩仓库大小 git reflog expire --expire=now --all git gc --prune=now --aggressive 然后重新 push(第一次 push 分支) git push --set-upstream origin lite-AlmaLinux 防止此类问题 优化 ....

2025年05月10日 · 1 min · Leanku

Jenkins 使用

Jenkins 使用 1. 安装Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key sudo yum upgrade # Add required dependencies for the jenkins package sudo yum install fontconfig java-21-openjdk sudo yum install jenkins 2. 启动 Jenkins sudo systemctl enable jenkins sudo systemctl start jenkins # 检查状态 sudo systemctl status jenkins 正常输出应显示 active (running)。 开放防火墙(如需) # 开放 8080 端口(Jenkins 默认端口) sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload 3. 配置Jenkins 3.1 访问 Jenkins 并完成初始化 在浏览器访问:http://<服务器IP>:8080 获取初始管理员密码: sudo cat /var/lib/jenkins/secrets/initialAdminPassword 复制输出的密码粘贴到网页。 安装推荐插件:选择默认插件集(包括Git、Pipeline等常用工具)。 3....

2025年05月09日 · 1 min · Leanku

Harbor 使用

Harbor 使用 1. 安装Harbor 此处使用官方离线安装包 1. 下载解压 # 安装编译依赖 # 安装 Docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker # 安装 Docker Compose 页面下载的话注意版本比如 验证系统架构uname -m输出x86_64 sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 下载Harbor并解压 (我用的离线安装包包含所有依赖镜像) wget https://github.com/goharbor/harbor/releases/download/v2.12.3/harbor-offline-installer-v2.12.3.tgz tar -xzvf harbor-offline-installer-v2.12.3.tgz cd harbor 2. 生成自签名证书(IP方式) 如果使用http则不需要设置 sudo mkdir -p /etc/harbor/ssl sudo chmod 755 /etc/harbor/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/harbor/ssl/your_ip....

2025年05月08日 · 3 min · Leanku

Kubernetes学习指北

Kubernetes学习指北 一、 大纲 1. 了解基础概念 概念 说明 Pod 最小的调度单位,一个 Pod 可以包含一个或多个容器 Node Kubernetes 集群的工作节点 Deployment 管理 Pod 的副本和升级策略 Service 用于 Pod 间通信和对外暴露 ConfigMap / Secret 配置和敏感信息管理 Volume 数据卷,用于持久化数据 Namespace 命名空间,多租户环境的逻辑隔离 Ingress 对外 HTTP/HTTPS 流量管理 kube-apiserver、kube-scheduler、kube-controller-manager Master 组件,负责调度、管理集群 2. 核心组件及职责 (必须的核心组件) kube-apiserver (API 服务器) 作用: 集群的 大脑入口 负责 接收请求(kubectl、Dashboard、其他服务),然后转给 etcd 或控制器 所有组件(scheduler、controller、kubelet)都通过它通信。 像是办事大厅,所有人(开发、运维、调度器)都必须来这里递交申请。 kube-scheduler (调度器) * 作用: 负责 给 Pod 找宿主机。 根据 资源情况(CPU、内存)、约束(亲和性、污点)、策略 来决定 Pod 放在哪个 Node 上。 * 像是一个 派单员,根据司机(Node)的空闲情况,把订单(Pod)分配给合适的人。 kube-controller-manager (控制器管理器) * 作用: 内部包含很多 控制器(controller),比如: Deployment Controller:保证副本数量正确 Node Controller:监控节点状态。 Endpoint Controller:维护 Service → Pod 的映射。 核心任务是:对比实际状态和期望状态,不断修正。 * 像是一个 巡检员,不停检查「理想状态」和「现实情况」是不是一致,如果发现差错,就赶紧修正。 kubelet (节点代理) 作用: 跑在每个 Node 上的 代理。 负责和 kube-apiserver 交互,接收“要运行哪些 Pod”。 调用底层 容器运行时(containerd、CRI-O、Docker) 来真正启动容器。 还会 汇报 Pod 和 Node 的运行状态。 * 像是 工地上的施工队长,接到上级(apiserver)的命令,就去调度工人(containerd)建房子(Pod)。 etcd 作用: 分布式键值存储,保存集群的所有状态(Pod、Service、配置等) * 像是 工地上的施工队长,接到上级(apiserver)的命令,就去调度工人(containerd)建房子(Pod) 容器运行时(Container Runtime,如 containerd、CRI-O、DockerShim) 作用: kubelet 本身不会直接运行容器,它要依赖运行时。 真正负责创建和运行容器的底层引擎。 常见的有 containerd(最主流,K8s 默认推荐) CRI-O(轻量化,专门为 K8s 服务) Docker(以前常用,但现在 K8s 不直接依赖它了,而是通过 containerd) * 比喻:工人,真正搬砖盖房子(运行容器)。 3....

2025年05月01日 · 2 min · Leanku

Kubernetes学习指北之Kubernetes kubectl

Kubernetes学习指北之Kubernetes kubectl 一、 kubectl 介绍 kubectl 是 Kubernetes 官方提供的命令行工具,用于与 Kubernetes 集群交互。 它可以管理资源对象(Pods、Deployments、Services 等)、调试问题、查看日志、扩缩容、发布更新等。 本质上,它通过 Kubernetes API 与集群通信。 组件关系示意: kubectl <---> kube-apiserver <---> etcd / kubelet / controller-manager / scheduler 二、安装与配置 1. 安装(Linux): curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ kubectl version --client 2. 配置 kubeconfig 默认路径:~/.kube/config 查看当前配置: kubectl config view kubectl config current-context 切换 namespace: kubectl config set-context --current --namespace=demo 三、基础命令 1. 查看集群信息 kubectl cluster-info # 控制面信息 kubectl version # 客户端 & 服务端版本 kubectl api-resources # 列出可用资源 kubectl get namespaces # 查看命名空间 2....

2025年05月01日 · 3 min · Leanku

Kubernetes学习指北之Kubernetes YAML

Kubernetes学习指北之Kubernetes YAML 一、 Kubernetes YAML 的基本结构 Kubernetes 资源对象通常是 YAML 文件。每个 YAML 对象至少包含三个字段: apiVersion: v1 # API 版本,不同资源使用的版本不同 kind: Pod # 资源类型,如 Pod、Deployment、Service、Secret、ConfigMap metadata: # 元数据 name: my-pod namespace: default spec: # 具体配置 containers: - name: nginx image: nginx:1.25 二、常用字段详解 1. apiVersion 指定资源的 API 版本。 常见值: v1:Pod、Service、ConfigMap、Secret apps/v1:Deployment、StatefulSet、DaemonSet batch/v1:Job、CronJob 2. kind 资源类型 常见类型: Pod:最小的调度单位 Deployment:Pod 的管理控制器,可以做副本管理和滚动升级 Service:服务发现与负载均衡 ConfigMap / Secret:配置或敏感信息管理 Namespace:隔离资源的逻辑空间 3. metadata 资源的名字、标签、注解等。 常见字段: metadata: name: my-app namespace: default labels: app: my-app annotations: description: "Demo app" 4....

2025年05月01日 · 2 min · Leanku

Kubernetes学习指北之单节点集群(Master)

Kubernetes学习指北之单节点集群(Master) 一、 单节点集群(Single Node Cluster)说明 学习和开发利器,操作简单 特点 Master 节点和 Worker 节点在同一台机器上 kube-apiserver、kube-scheduler、kube-controller-manager、kubelet 都在同一台机器 Pod 也在同一台机器上运行 资源有限:所有容器共享同一台机器的 CPU、内存和存储 高可用性低:Master 节点宕机,整个集群不可用 网络简单:只需一个节点,Pod 网络配置相对简单 适用场景 学习和测试 Kubernetes 核心概念 开发环境部署微服务 练习 kubectl 命令、Deployment、Service 等 优点 配置简单,一条命令就能搭建 资源占用低,不需要多台虚拟机 部署快速,便于练手 缺点 不适合生产环境 没有高可用性 无法模拟真实多节点调度 二、 准备环境和工具 这里我使用的CentOS7 做一些初始化 # 切换 root sudo -i # 关闭防火墙(实验环境) systemctl stop firewalld systemctl disable firewalld # 关闭 selinux setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config # 关闭 swap swapoff -a sed -i '/swap/d' /etc/fstab # 调整内核参数(K8s 网络需要) cat <<EOF > /etc/sysctl....

2025年05月01日 · 9 min · Leanku