<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>陈不丢的地盘</title><description>Demo Site</description><link>https://blog.budiuyun.net/</link><language>zh_CN</language><item><title>使用kubeasz一键安装k8s原生集群</title><link>https://blog.budiuyun.net/posts/%E4%BD%BF%E7%94%A8kubeasz%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85k8s%E5%8E%9F%E7%94%9F%E9%9B%86%E7%BE%A4/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/%E4%BD%BF%E7%94%A8kubeasz%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85k8s%E5%8E%9F%E7%94%9F%E9%9B%86%E7%BE%A4/</guid><description>详细介绍如何使用kubeasz工具部署高可用的Kubernetes原生集群</description><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;p&gt;在开始安装之前，请仔细阅读以下重要注意事项：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意1：&lt;/strong&gt; 确保各节点时区设置一致、时间同步。如果你的环境没有提供NTP时间同步，推荐集成安装chrony&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意2：&lt;/strong&gt; 确保在干净的系统上开始安装，不要使用曾经装过kubeadm或其他k8s发行版的环境&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意3：&lt;/strong&gt; 建议操作系统升级到新的稳定内核，请结合阅读内核升级文档&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意4：&lt;/strong&gt; 在公有云上创建多主集群，请结合阅读在公有云上部署kubeasz&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;集群节点规划&lt;/h2&gt;
&lt;h3&gt;高可用集群所需节点配置&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;角色&lt;/th&gt;
&lt;th&gt;数量&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;部署节点&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;运行ansible/ezctl命令，一般复用第一个master节点&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;etcd节点&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;注意etcd集群需要1,3,5,...奇数个节点，一般复用master节点&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;master节点&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;高可用集群至少2个master节点&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;node节点&lt;/td&gt;
&lt;td&gt;n&lt;/td&gt;
&lt;td&gt;运行应用负载的节点，可根据需要提升机器配置/增加节点数&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;机器配置要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;master节点：&lt;/strong&gt; 4c/8g内存/50g硬盘&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;worker节点：&lt;/strong&gt; 建议8c/32g内存/200g硬盘以上&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 默认配置下容器运行时和kubelet会占用&lt;code&gt;/var&lt;/code&gt;的磁盘空间，如果磁盘分区特殊，可以设置&lt;code&gt;config.yml&lt;/code&gt;中的容器运行时和kubelet数据目录：&lt;code&gt;CONTAINERD_STORAGE_DIR&lt;/code&gt;、&lt;code&gt;DOCKER_STORAGE_DIR&lt;/code&gt;、&lt;code&gt;KUBELET_ROOT_DIR&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;部署方式&lt;/h3&gt;
&lt;p&gt;在kubeasz 2.x版本，多节点高可用集群安装可以使用2种方式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;按照本文步骤先规划准备，预先配置节点信息后，直接安装多节点高可用集群&lt;/li&gt;
&lt;li&gt;先部署单节点集群AllinOne部署，然后通过节点添加扩容成高可用集群&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;部署步骤&lt;/h2&gt;
&lt;p&gt;以下示例创建一个4节点的多主高可用集群，文档中命令默认都需要root权限运行。&lt;/p&gt;
&lt;h3&gt;1. 基础系统配置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2c/4g内存/40g硬盘（该配置仅测试用）&lt;/li&gt;
&lt;li&gt;最小化安装Ubuntu 16.04 server或者CentOS 7 Minimal&lt;/li&gt;
&lt;li&gt;配置基础网络、更新源、SSH登录等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 在每个节点安装依赖工具&lt;/h3&gt;
&lt;p&gt;推荐使用ansible in docker容器化方式运行，无需安装额外依赖。&lt;/p&gt;
&lt;h3&gt;3. 准备ssh免密登录&lt;/h3&gt;
&lt;p&gt;配置从部署节点&lt;strong&gt;Master&lt;/strong&gt;能够ssh免密登录所有节点，并且设置python软连接：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# $IP为所有节点地址包括自身，按照提示输入yes和root密码
ssh-copy-id $IP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;对于密钥登录的服务器设置&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;如果目标服务器已经配置了密钥登录，可以使用以下方式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 方式1：指定私钥文件
ssh-copy-id -i ~/.ssh/id_rsa.pub -o &quot;IdentityFile=~/.ssh/your_private_key&quot; root@$IP

# 方式2：手动复制公钥内容到目标服务器
cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/your_private_key root@$IP &quot;mkdir -p ~/.ssh &amp;amp;&amp;amp; cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&quot;

# 方式3：使用scp复制公钥文件
scp -i ~/.ssh/your_private_key ~/.ssh/id_rsa.pub root@$IP:/tmp/
ssh -i ~/.ssh/your_private_key root@$IP &quot;cat /tmp/id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys &amp;amp;&amp;amp; rm /tmp/id_rsa.pub&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h3&gt;4. 在部署节点编排k8s安装&lt;/h3&gt;
&lt;h4&gt;4.1 下载项目源码、二进制及离线镜像&lt;/h4&gt;
&lt;p&gt;下载工具脚本ezdown，举例使用kubeasz版本3.5.0：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;版本对应关系：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kubernetes&lt;/th&gt;
&lt;th&gt;kubeasz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1.23&lt;/td&gt;
&lt;td&gt;3.2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.24-1.28&lt;/td&gt;
&lt;td&gt;3.6.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.29&lt;/td&gt;
&lt;td&gt;3.6.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.30&lt;/td&gt;
&lt;td&gt;3.6.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.31&lt;/td&gt;
&lt;td&gt;3.6.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.32&lt;/td&gt;
&lt;td&gt;3.6.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.33&lt;/td&gt;
&lt;td&gt;3.6.7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre&gt;&lt;code&gt;export release=3.6.7
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下载kubeasz代码、二进制、默认容器镜像（更多关于ezdown的参数，运行&lt;code&gt;./ezdown&lt;/code&gt;查看）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 国内环境
./ezdown -D
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;# 海外环境
# ./ezdown -D -m standard
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;【可选】下载额外容器镜像&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;下载额外容器镜像（cilium, flannel, prometheus等）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 按需下载
./ezdown -X flannel
./ezdown -X prometheus
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;【可选】下载离线系统包&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;适用于无法使用yum/apt仓库情形：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./ezdown -P
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;上述脚本运行成功后，所有文件（kubeasz代码、二进制、离线镜像）均已整理好放入目录&lt;code&gt;/etc/kubeasz&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;ezctl 命令参数说明&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;使用帮助：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;随时运行 &lt;code&gt;ezctl&lt;/code&gt; 获取命令行提示信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Usage: ezctl COMMAND [args]
-------------------------------------------------------------------------------------
Cluster setups:
    list                             显示当前所有管理的集群
    checkout    &amp;lt;cluster&amp;gt;            切换默认集群
    new         &amp;lt;cluster&amp;gt;            创建新集群配置
    setup       &amp;lt;cluster&amp;gt;  &amp;lt;step&amp;gt;    安装新集群
    start       &amp;lt;cluster&amp;gt;            启动临时停止的集群
    stop        &amp;lt;cluster&amp;gt;            临时停止某个集群（包括集群内运行的pod）
    upgrade     &amp;lt;cluster&amp;gt;            升级集群k8s组件版本
    destroy     &amp;lt;cluster&amp;gt;            删除集群
    backup      &amp;lt;cluster&amp;gt;            备份集群（仅etcd数据，不包括pv数据和业务应用数据）
    restore     &amp;lt;cluster&amp;gt;            从备份中恢复集群
    start-aio                        创建单机集群（类似 minikube）

Cluster ops:
    add-etcd    &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      增加 etcd 节点
    add-master  &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      增加主节点
    add-node    &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      增加工作节点
    del-etcd    &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      删除 etcd 节点
    del-master  &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      删除主节点
    del-node    &amp;lt;cluster&amp;gt;  &amp;lt;ip&amp;gt;      删除工作节点

Extra operation:
    kcfg-adm    &amp;lt;cluster&amp;gt;  &amp;lt;args&amp;gt;    管理客户端kubeconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;4.2 创建集群配置实例&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# 容器化运行kubeasz
./ezdown -S

# 创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2021-01-19 10:48:23 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2021-01-19 10:48:23 DEBUG set version of common plugins
2021-01-19 10:48:23 DEBUG cluster k8s-01: files successfully created.
2021-01-19 10:48:23 INFO next steps 1: to config &apos;/etc/kubeasz/clusters/k8s-01/hosts&apos;
2021-01-19 10:48:23 INFO next steps 2: to config &apos;/etc/kubeasz/clusters/k8s-01/config.yml&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后根据提示配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/etc/kubeasz/clusters/k8s-01/hosts&lt;/code&gt;：根据前面节点规划修改hosts文件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/kubeasz/clusters/k8s-01/config.yml&lt;/code&gt;：修改其他集群层面的主要配置选项&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;hosts 文件配置示例&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;根据您的实际节点规划，修改 &lt;code&gt;/etc/kubeasz/clusters/k8s-01/hosts&lt;/code&gt; 文件。一般只需要修改以下三个部分：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. etcd 节点配置&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# &apos;etcd&apos; cluster should have odd member(s) (1,3,5,...)
[etcd]
10.0.1.10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;2. master 节点配置&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# master node(s), set unique &apos;k8s_nodename&apos; for each node
# CAUTION: &apos;k8s_nodename&apos; must consist of lower case alphanumeric characters, &apos;-&apos; or &apos;.&apos;,
# and must start and end with an alphanumeric character
[kube_master]
10.0.1.10 k8s_nodename=&apos;master-01&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;3. worker 节点配置&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# work node(s), set unique &apos;k8s_nodename&apos; for each node
# CAUTION: &apos;k8s_nodename&apos; must consist of lower case alphanumeric characters, &apos;-&apos; or &apos;.&apos;,
# and must start and end with an alphanumeric character
[kube_node]
10.0.1.11 k8s_nodename=&apos;node-01&apos;
10.0.1.12 k8s_nodename=&apos;node-02&apos;
10.0.1.13 k8s_nodename=&apos;node-03&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;完整配置文件示例：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# &apos;etcd&apos; cluster should have odd member(s) (1,3,5,...)
[etcd]
10.0.1.10

# master node(s), set unique &apos;k8s_nodename&apos; for each node
[kube_master]
10.0.1.10 k8s_nodename=&apos;master-01&apos;

# work node(s), set unique &apos;k8s_nodename&apos; for each node
[kube_node]
10.0.1.11 k8s_nodename=&apos;node-01&apos;
10.0.1.12 k8s_nodename=&apos;node-02&apos;
10.0.1.13 k8s_nodename=&apos;node-03&apos;

# [optional] harbor server, a private docker registry
[harbor]
#10.0.1.20 NEW_INSTALL=false

# [optional] loadbalance for accessing k8s from outside
[ex_lb]
#10.0.1.30 LB_ROLE=backup EX_APISERVER_VIP=10.0.1.100 EX_APISERVER_PORT=8443
#10.0.1.31 LB_ROLE=master EX_APISERVER_VIP=10.0.1.100 EX_APISERVER_PORT=8443

# [optional] ntp server for the cluster
[chrony]
#10.0.1.1

[all:vars]
# --------- Main Variables ---------------
# Secure port for apiservers
SECURE_PORT=&quot;6443&quot;

# Cluster container-runtime supported: docker, containerd
CONTAINER_RUNTIME=&quot;containerd&quot;

# Network plugins supported: calico, flannel, kube-router, cilium, kube-ovn
CLUSTER_NETWORK=&quot;calico&quot;

# Service proxy mode of kube-proxy: &apos;iptables&apos; or &apos;ipvs&apos;
PROXY_MODE=&quot;ipvs&quot;

# K8S Service CIDR, not overlap with node(host) networking
SERVICE_CIDR=&quot;10.68.0.0/16&quot;

# Cluster CIDR (Pod CIDR), not overlap with node(host) networking
CLUSTER_CIDR=&quot;172.20.0.0/16&quot;

# NodePort Range
NODE_PORT_RANGE=&quot;30000-32767&quot;

# Cluster DNS Domain
CLUSTER_DNS_DOMAIN=&quot;cluster.local&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;配置说明：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;etcd节点&lt;/strong&gt;：生产环境建议配置奇数个节点（1,3,5个），示例中复用了master节点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;master节点&lt;/strong&gt;：高可用集群至少需要2个master节点&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;worker节点&lt;/strong&gt;：根据实际需要配置工作节点数量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;k8s_nodename&lt;/strong&gt;：必须由小写字母、数字、&apos;-&apos; 或 &apos;.&apos; 组成，且必须以字母或数字开头和结尾&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可选配置&lt;/strong&gt;：harbor、负载均衡器、NTP服务器等可根据需要启用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;修改步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将示例中的IP地址替换为您的实际节点IP&lt;/li&gt;
&lt;li&gt;根据您的节点规划调整etcd、master、worker节点配置&lt;/li&gt;
&lt;li&gt;确保每个节点的&lt;code&gt;k8s_nodename&lt;/code&gt;唯一且符合命名规范&lt;/li&gt;
&lt;li&gt;根据网络环境调整CIDR配置，确保不与现有网络冲突&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h4&gt;4.3 开始安装&lt;/h4&gt;
&lt;p&gt;如果你对集群安装流程不熟悉，请阅读项目首页安装步骤讲解后分步安装，并对每步都进行验证。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 建议使用alias命令，查看~/.bashrc文件应该包含：alias dk=&apos;docker exec -it kubeasz&apos;
source ~/.bashrc

# 一键安装，等价于执行docker exec -it kubeasz ezctl setup k8s-01 all
dk ezctl setup k8s-01 all

# 或者分步安装，具体使用 dk ezctl help setup 查看分步安装帮助信息
# dk ezctl setup k8s-01 01
# dk ezctl setup k8s-01 02
# dk ezctl setup k8s-01 03
# dk ezctl setup k8s-01 04
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;验证安装&lt;/h2&gt;
&lt;h3&gt;安装kubectl客户端工具&lt;/h3&gt;
&lt;p&gt;如果kubeasz安装后没有安装kubectl，请先安装kubectl客户端工具：&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;&amp;lt;strong&amp;gt;kubectl 二进制安装方法&amp;lt;/strong&amp;gt;&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;下载指定版本&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 替换为您需要的版本
export K8S_VERSION=&quot;v1.31.0&quot;

# 下载指定版本
curl -LO &quot;https://dl.k8s.io/release/${K8S_VERSION}/bin/linux/amd64/kubectl&quot;

# 添加执行权限
chmod +x kubectl

# 移动到系统路径
sudo mv kubectl /usr/local/bin/

# 验证安装
kubectl version --client
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;配置kubectl&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 复制kubeconfig文件
mkdir -p ~/.kube
sudo cp /etc/kubeasz/clusters/k8s-01/kubectl.kubeconfig ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config

# 或者设置环境变量
export KUBECONFIG=/etc/kubeasz/clusters/k8s-01/kubectl.kubeconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;h3&gt;验证集群状态&lt;/h3&gt;
&lt;p&gt;安装完成后，可以通过以下命令验证集群状态：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看节点状态
kubectl get nodes

# 查看集群信息
kubectl cluster-info

# 查看所有pod状态
kubectl get pods --all-namespaces

# 查看集群版本信息
kubectl version

# 查看集群组件状态
kubectl get componentstatuses
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;通过以上步骤，你就可以成功部署一个高可用的Kubernetes原生集群了。记住在生产环境中使用时，要根据实际需求调整机器配置和网络规划。&lt;/p&gt;
&lt;h2&gt;参考项目&lt;/h2&gt;
&lt;p&gt;本文介绍的安装方法基于 &lt;a href=&quot;https://github.com/easzlab/kubeasz&quot;&gt;kubeasz&lt;/a&gt; 项目，这是一个优秀的开源项目，致力于提供快速部署高可用k8s集群的工具。该项目具有以下特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;集群特性&lt;/strong&gt;：Master高可用、离线安装、多架构支持(amd64/arm64)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;集群版本&lt;/strong&gt;：支持kubernetes v1.24 到 v1.33&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;运行时&lt;/strong&gt;：containerd v1.7.x, v2.0.x&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络插件&lt;/strong&gt;：calico, cilium, flannel, kube-ovn, kube-router&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更多详细信息和最新版本请访问：&lt;a href=&quot;https://github.com/easzlab/kubeasz&quot;&gt;https://github.com/easzlab/kubeasz&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>k8s强制删除pod</title><link>https://blog.budiuyun.net/posts/k8s%E5%BC%BA%E5%88%B6%E5%88%A0%E9%99%A4pod/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/k8s%E5%BC%BA%E5%88%B6%E5%88%A0%E9%99%A4pod/</guid><description>当Kubernetes中的Pod无法正常删除时，如何使用命令行强制删除卡住的Pod</description><pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;问题场景&lt;/h2&gt;
&lt;p&gt;在使用Kubernetes过程中，有时会遇到Pod无法正常删除的情况，比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pod一直处于 &lt;code&gt;Terminating&lt;/code&gt; 状态&lt;/li&gt;
&lt;li&gt;删除命令执行后Pod仍然存在&lt;/li&gt;
&lt;li&gt;Pod被卡住无响应&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;解决方案&lt;/h2&gt;
&lt;h3&gt;方法一：标准删除（优先尝试）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;kubectl delete pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;方法二：强制删除&lt;/h3&gt;
&lt;p&gt;如果标准删除无效，使用强制删除：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;kubectl delete pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt; --force --grace-period=0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;参数说明：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--force&lt;/code&gt;：强制删除&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--grace-period=0&lt;/code&gt;：设置优雅关闭时间为0秒&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;方法三：清理Finalizers&lt;/h3&gt;
&lt;p&gt;如果强制删除也无效，可能是finalizers阻止了删除：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;kubectl patch pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt; -p &apos;{&quot;metadata&quot;:{&quot;finalizers&quot;:null}}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;实际示例&lt;/h2&gt;
&lt;p&gt;删除名为 &lt;code&gt;python-vscode-1757260158960-69cfd7976-lrgd5&lt;/code&gt; 的Pod：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 1. 先尝试正常删除
kubectl delete pod python-vscode-1757260158960-69cfd7976-lrgd5 -n default

# 2. 如果失败，使用强制删除
kubectl delete pod python-vscode-1757260158960-69cfd7976-lrgd5 -n default --force --grace-period=0

# 3. 最后手段：清理finalizers
kubectl patch pod python-vscode-1757260158960-69cfd7976-lrgd5 -n default -p &apos;{&quot;metadata&quot;:{&quot;finalizers&quot;:null}}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;警告&lt;/strong&gt;：强制删除可能导致数据丢失，请确保重要数据已备份&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;提示&lt;/strong&gt;：如果Pod是由Deployment等控制器管理的，删除后会自动重新创建新的Pod&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;验证删除结果&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 检查Pod是否已删除
kubectl get pods -n &amp;lt;namespace&amp;gt;

# 查看Pod详细状态（如果还存在）
kubectl describe pod &amp;lt;pod-name&amp;gt; -n &amp;lt;namespace&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过以上方法，基本可以解决所有Pod删除卡住的问题。&lt;/p&gt;
</content:encoded></item><item><title>使用frp实现流量转发</title><link>https://blog.budiuyun.net/posts/%E4%BD%BF%E7%94%A8frp%E5%AE%9E%E7%8E%B0%E6%B5%81%E9%87%8F%E8%BD%AC%E5%8F%91/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/%E4%BD%BF%E7%94%A8frp%E5%AE%9E%E7%8E%B0%E6%B5%81%E9%87%8F%E8%BD%AC%E5%8F%91/</guid><description>详细介绍如何使用frp搭建服务端和客户端，实现内网穿透和流量转发功能</description><pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;什么是frp&lt;/h2&gt;
&lt;p&gt;frp是一个专注于内网穿透的高性能的反向代理应用，支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网的服务通过具有公网IP的服务器暴露到互联网上，同时提供web界面管理内网连接状态。&lt;/p&gt;
&lt;h2&gt;环境准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;服务端&lt;/strong&gt;：具有公网IP的服务器（用于运行frps）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客户端&lt;/strong&gt;：内网设备（用于运行frpc）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;系统要求&lt;/strong&gt;：Linux 64位系统&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装frp&lt;/h2&gt;
&lt;h3&gt;下载和安装&lt;/h3&gt;
&lt;p&gt;在服务端和客户端都需要执行以下安装步骤：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 下载frp压缩包
curl -L -O https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz

# 解压缩
tar -zxvf frp_0.58.1_linux_amd64.tar.gz

# 移动到系统目录
sudo mv frp_0.58.1_linux_amd64 /usr/local/frp
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 确保下载的版本号一致，本教程使用的是v0.58.1版本。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;配置服务端(frps)&lt;/h2&gt;
&lt;h3&gt;创建服务端配置文件&lt;/h3&gt;
&lt;p&gt;在具有公网IP的服务器上配置frps：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 创建服务端配置文件
cat &amp;gt; /usr/local/frp/frps.ini &amp;lt;&amp;lt; EOF
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;配置说明&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bind_port&lt;/code&gt;: frp服务监听端口，默认7000，客户端需要连接此端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dashboard_port&lt;/code&gt;: Web管理界面端口，默认7500&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dashboard_user&lt;/code&gt;: Web管理界面用户名，默认admin&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dashboard_pwd&lt;/code&gt;: Web管理界面密码，默认admin&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;创建systemd服务&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 创建frps服务文件
cat &amp;gt; /etc/systemd/system/frps.service &amp;lt;&amp;lt; EOF
[Unit]
Description=frps daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 启用并启动服务
systemctl enable frps &amp;amp;&amp;amp; systemctl start frps
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;验证服务状态&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 检查服务状态
systemctl status frps

# 检查端口监听
netstat -tulnp | grep :7000
netstat -tulnp | grep :7500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问 &lt;code&gt;http://你的服务器IP:7500&lt;/code&gt; 查看Web管理界面。&lt;/p&gt;
&lt;h2&gt;配置客户端(frpc)&lt;/h2&gt;
&lt;h3&gt;创建客户端配置文件&lt;/h3&gt;
&lt;p&gt;在需要进行内网穿透的设备上配置frpc：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 创建客户端配置文件
cat &amp;gt; /usr/local/frp/frpc.ini &amp;lt;&amp;lt; EOF
[common]
server_addr = 你的服务器IP
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;配置说明&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;server_addr&lt;/code&gt;: frps服务端的公网IP地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;server_port&lt;/code&gt;: frps服务端监听端口，默认7000&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[ssh]&lt;/code&gt;、&lt;code&gt;[web]&lt;/code&gt;: 服务配置段，可以配置多个服务&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt;: 协议类型，支持tcp、udp、http、https等&lt;/li&gt;
&lt;li&gt;&lt;code&gt;local_ip&lt;/code&gt;: 内网目标设备IP，127.0.0.1代表本机&lt;/li&gt;
&lt;li&gt;&lt;code&gt;local_port&lt;/code&gt;: 内网目标端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remote_port&lt;/code&gt;: 服务端映射的外网端口&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;重要：&lt;/strong&gt; 请根据实际情况修改server_addr。上述示例中，SSH服务将通过服务器的6000端口访问，Web服务通过8080端口访问。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;创建systemd服务&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 创建frpc服务文件
cat &amp;gt; /etc/systemd/system/frpc.service &amp;lt;&amp;lt; EOF
[Unit]
Description=frpc daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 启用并启动服务
systemctl enable frpc &amp;amp;&amp;amp; systemctl start frpc
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;服务管理&lt;/h2&gt;
&lt;h3&gt;常用管理命令&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 启动服务
systemctl start frps   # 服务端
systemctl start frpc   # 客户端

# 停止服务
systemctl stop frps    # 服务端
systemctl stop frpc    # 客户端

# 重启服务
systemctl restart frps # 服务端
systemctl restart frpc # 客户端

# 查看服务状态
systemctl status frps  # 服务端
systemctl status frpc  # 客户端

# 查看服务日志
journalctl -u frps -f  # 服务端
journalctl -u frpc -f  # 客户端
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;测试连接&lt;/h2&gt;
&lt;h3&gt;验证连接状态&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;检查客户端连接&lt;/strong&gt;：在frps的Web管理界面（http://服务器IP:7500）查看客户端连接状态&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;测试端口转发&lt;/strong&gt;：从外网访问 &lt;code&gt;服务器IP:映射端口&lt;/code&gt; 验证是否能正常访问内网服务&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSH访问：&lt;code&gt;ssh -p 6000 用户名@服务器IP&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Web访问：&lt;code&gt;http://服务器IP:8080&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;查看日志&lt;/strong&gt;：通过日志排查连接问题&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;journalctl -u frpc -f
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;安全提醒：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;及时修改默认的dashboard用户名和密码&lt;/li&gt;
&lt;li&gt;使用强密码的token进行身份验证&lt;/li&gt;
&lt;li&gt;定期更新frp版本以获得安全补丁&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;网络要求：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;服务端必须具有公网IP&lt;/li&gt;
&lt;li&gt;服务端防火墙需要开放相应端口&lt;/li&gt;
&lt;li&gt;客户端需要能够访问服务端的bind_port&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;性能考虑：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;大量端口映射可能影响性能&lt;/li&gt;
&lt;li&gt;建议根据实际需求合理配置端口范围&lt;/li&gt;
&lt;li&gt;监控服务器资源使用情况&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h2&gt;故障排除&lt;/h2&gt;
&lt;h3&gt;常见问题&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;客户端无法连接服务端&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;检查服务端防火墙设置&lt;/li&gt;
&lt;li&gt;验证server_addr和server_port配置&lt;/li&gt;
&lt;li&gt;确认token一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;端口映射不生效&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;检查端口范围配置&lt;/li&gt;
&lt;li&gt;验证目标服务是否正常运行&lt;/li&gt;
&lt;li&gt;查看frp日志文件&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;服务异常重启&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;检查配置文件语法&lt;/li&gt;
&lt;li&gt;查看系统日志&lt;/li&gt;
&lt;li&gt;验证权限设置&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;通过以上配置，你就可以成功使用frp实现内网穿透和流量转发功能了。&lt;/p&gt;
</content:encoded></item><item><title>设置SSH使用密钥登录</title><link>https://blog.budiuyun.net/posts/%E8%AE%BE%E7%BD%AEssh%E4%BD%BF%E7%94%A8%E5%AF%86%E9%92%A5%E7%99%BB%E5%BD%95/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/%E8%AE%BE%E7%BD%AEssh%E4%BD%BF%E7%94%A8%E5%AF%86%E9%92%A5%E7%99%BB%E5%BD%95/</guid><description>详细介绍如何配置SSH密钥登录，提高服务器安全性，包括密钥生成、配置和安全设置的完整指南</description><pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;什么是SSH密钥登录&lt;/h2&gt;
&lt;p&gt;SSH密钥登录是一种更安全的服务器登录方式，使用密钥文件代替密码登录，避免密码被破解的风险。&lt;/p&gt;
&lt;h2&gt;为什么要使用密钥登录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;更安全&lt;/strong&gt;：不用担心密码被暴力破解&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更方便&lt;/strong&gt;：配置后无需输入密码即可登录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适合脚本&lt;/strong&gt;：自动化部署时不需要交互输入密码&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;第一步：生成密钥对&lt;/h2&gt;
&lt;p&gt;在客户端（你的电脑）上生成密钥：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 生成密钥对（推荐使用ED25519）
ssh-keygen -t ed25519 -C &quot;your_email@example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行后按提示操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;密钥保存位置：直接回车使用默认位置&lt;/li&gt;
&lt;li&gt;密钥密码：可以设置密码，也可以直接回车跳过&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;第二步：复制公钥到服务器&lt;/h2&gt;
&lt;h3&gt;方法一：自动复制（推荐）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 将公钥复制到服务器
ssh-copy-id username@server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;方法二：手动复制&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;查看并复制公钥内容：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;cat ~/.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;登录服务器：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;ssh username@server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;在服务器上创建目录和文件：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;将公钥内容添加到文件中：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# 将公钥内容追加到authorized_keys文件（替换YOUR_PUBLIC_KEY为实际的公钥内容）
echo &quot;YOUR_PUBLIC_KEY&quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;第三步：测试密钥登录&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 测试登录
ssh username@server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果能够免密码登录，说明配置成功！&lt;/p&gt;
&lt;h2&gt;第四步：禁用密码登录（可选）&lt;/h2&gt;
&lt;p&gt;为了提高安全性，可以禁用密码登录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 禁用密码登录
sudo sed -i &apos;s/#PasswordAuthentication yes/PasswordAuthentication no/&apos; /etc/ssh/sshd_config
sudo sed -i &apos;s/PasswordAuthentication yes/PasswordAuthentication no/&apos; /etc/ssh/sshd_config

# 启用密钥登录
sudo sed -i &apos;s/#PubkeyAuthentication yes/PubkeyAuthentication yes/&apos; /etc/ssh/sshd_config
sudo sed -i &apos;s/PubkeyAuthentication no/PubkeyAuthentication yes/&apos; /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重启SSH服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;简单的客户端配置&lt;/h2&gt;
&lt;p&gt;创建SSH配置文件方便管理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 一键创建SSH配置文件
cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; ~/.ssh/config
Host myserver
    HostName 192.168.1.100
    User username
    IdentityFile ~/.ssh/id_ed25519
EOF

# 设置配置文件权限
chmod 600 ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置后可以直接使用：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh myserver
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>对于k8s禁止不同Namespace之间访问的网络策略</title><link>https://blog.budiuyun.net/posts/%E5%AF%B9%E4%BA%8Ek8s%E7%A6%81%E6%AD%A2%E4%B8%8D%E5%90%8Cnamespace%E4%B9%8B%E9%97%B4%E8%AE%BF%E9%97%AE%E7%9A%84%E7%BD%91%E7%BB%9C%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/%E5%AF%B9%E4%BA%8Ek8s%E7%A6%81%E6%AD%A2%E4%B8%8D%E5%90%8Cnamespace%E4%B9%8B%E9%97%B4%E8%AE%BF%E9%97%AE%E7%9A%84%E7%BD%91%E7%BB%9C%E7%AD%96%E7%95%A5/</guid><pubDate>Thu, 28 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;网络策略如下&lt;/h2&gt;
&lt;p&gt;我使用的网络插件是 &lt;strong&gt;Calico&lt;/strong&gt;，以下是基于 Calico 的网络策略示例，实现不同 Namespace 之间的访问隔离：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# API 版本，指定使用的 Kubernetes 网络策略 API
apiVersion: networking.k8s.io/v1
# 资源类型，这里是 NetworkPolicy
kind: NetworkPolicy
metadata:
  # 策略名称
  name: namespace-isolation
  # 策略所属的命名空间
  namespace: namespace-name
spec:
  # 选择器，{} 表示作用于该命名空间下所有 Pod
  podSelector: {}
  # 策略类型，Ingress 表示入站流量，Egress 表示出站流量
  policyTypes:
    - Ingress
    - Egress
  ingress:
    # 允许同命名空间下的 Pod 访问
    - from:
        - podSelector: {}
    # 允许集群内部分必要组件访问
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: ingress-nginx
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: kube-system
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: cattle-monitoring-system
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: pod-files-api
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: web-ssh
    # 允许所有 TCP 和 UDP 协议端口流量（用于 NodePort/LoadBalancer 类型 Service）
    - ports:
        - protocol: TCP
        - protocol: UDP
  egress:
    # 允许访问同命名空间下的 Pod
    - to:
        - podSelector: {}
    # 允许访问 DNS 服务（53 端口，TCP/UDP）
    - ports:
        - port: 53
          protocol: UDP
        - port: 53
          protocol: TCP
    # 允许访问除内网和保留地址外的公网 IP
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
            except:
              - 10.0.0.0/8        # 私有网段
              - 172.16.0.0/12     # 私有网段
              - 192.168.0.0/16    # 私有网段
              - 169.254.0.0/16    # 链路本地地址
              - 224.0.0.0/4       # 组播地址
              - 240.0.0.0/4       # 保留地址
              - 127.0.0.0/8       # 本地回环地址
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;思路说明&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;屏蔽内网网段&lt;/strong&gt;&lt;br /&gt;
首先通过 &lt;code&gt;ipBlock&lt;/code&gt; 的 &lt;code&gt;except&lt;/code&gt; 字段屏蔽了常见的内网和保留地址段，提升集群安全性，防止 Pod 直接访问内网资源：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;- to:
   - ipBlock:
      cidr: 0.0.0.0/0
      except:
       - 10.0.0.0/8        # 私有网段
       - 172.16.0.0/12     # 私有网段
       - 192.168.0.0/16    # 私有网段
       - 169.254.0.0/16    # 链路本地地址
       - 224.0.0.0/4       # 组播地址
       - 240.0.0.0/4       # 保留地址
       - 127.0.0.0/8       # 本地回环地址
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;只允许必要流量&lt;/strong&gt;&lt;br /&gt;
由于上述策略会禁止所有外部流量（包括集群内部流量），所以需要通过 &lt;code&gt;podSelector&lt;/code&gt; 和 &lt;code&gt;namespaceSelector&lt;/code&gt; 显式允许同命名空间和部分系统组件的访问。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;放行必要组件&lt;/strong&gt;&lt;br /&gt;
允许如 &lt;code&gt;ingress-nginx&lt;/code&gt;、&lt;code&gt;kube-system&lt;/code&gt; 等命名空间的流量，保证集群管理和监控等功能正常。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NodePort/LoadBalancer 兼容性&lt;/strong&gt;&lt;br /&gt;
由于 NodePort 和 LoadBalancer 类型的 Service 需要暴露端口给外部访问，需通过 &lt;code&gt;ports&lt;/code&gt; 字段放行所有 TCP/UDP 流量，否则会导致服务不可用：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;- ports:
   - protocol: TCP
   - protocol: UDP
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;blockquote&gt;
&lt;p&gt;Kubernetes 的 NetworkPolicy 默认是“拒绝优先”，只有被允许的流量才能通过。通过 &lt;code&gt;ipBlock&lt;/code&gt;、&lt;code&gt;namespaceSelector&lt;/code&gt; 和 &lt;code&gt;ports&lt;/code&gt; 的组合，可以实现灵活且安全的网络隔离。若有更细粒度需求，可进一步细化 &lt;code&gt;podSelector&lt;/code&gt; 或 &lt;code&gt;namespaceSelector&lt;/code&gt;，甚至指定端口范围。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果有更好的方法，欢迎交流。&lt;/p&gt;
</content:encoded></item><item><title>docker安装教程与镜像加速</title><link>https://blog.budiuyun.net/posts/docker%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B%E4%B8%8E%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F/</link><guid isPermaLink="true">https://blog.budiuyun.net/posts/docker%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B%E4%B8%8E%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F/</guid><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Docker Hub 镜像加速&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;转载自 &lt;a href=&quot;https://emohe.cn/posts/docker/#%E5%AE%89%E8%A3%85docker&quot;&gt;emohe.cn&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;国内从 Docker Hub 拉取镜像有时会遇到困难，此时可以配置镜像加速器。&lt;/p&gt;
&lt;h3&gt;安装Docker&lt;/h3&gt;
&lt;p&gt;官方安装脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://get.docker.com | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;国内安装脚本  &lt;a href=&quot;https://linuxmirrors.cn/other/&quot;&gt;(说明)&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者使用阿里云安装源&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -fsSL https://get.docker.com) --mirror Aliyun
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;手动离线安装Docker&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;h4&gt;下载 Docker:&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://download.docker.com/linux/static/stable/x86_64/&quot;&gt;官方文件下载地址——下载后上传到root目录&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/&quot;&gt;清华大学下载地址&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar xzvf docker-26.1.3.tgz     # 替换版本号
sudo mv docker/* /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;创建 Docker 服务文件&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo vim /etc/systemd/system/docker.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Docker Application Container Engine
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
RestartSec=2
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;启动并启用 Docker 服务&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod +x /usr/local/bin/dockerd
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;查看版本&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;docker -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;手动离线安装Docker-compose&amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;h3&gt;国内环境手动安装Docker-compose&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/docker/compose/releases&quot;&gt;点这里手动下载文件&lt;/a&gt; 上传到服务器的&lt;code&gt;/usr/local/bin&lt;/code&gt;目录&lt;/p&gt;
&lt;p&gt;重命名为docker-compose&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;增加执行权限&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod +x /usr/local/bin/docker-compose
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker-compose --version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;注意：&lt;/h3&gt;
&lt;p&gt;由于是以二进制文件安装的&lt;code&gt;docker-compose&lt;/code&gt;，所以运行命令有所变化，运行示例&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;区别在于中间的&lt;code&gt;-&lt;/code&gt;，官方安装脚本是以插件形式安装的&lt;code&gt;docker-compose&lt;/code&gt;，所以中间不需要&lt;code&gt;-&lt;/code&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;配置加速地址&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Ubuntu 16.04+、Debian 8+、CentOS 7+&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;创建或修改 &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/docker
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt;EOF
{
    &quot;registry-mirrors&quot;: [
        &quot;https://docker.1ms.run&quot;,
        &quot;https://hub.rat.dev&quot;,
        &quot;https://docker.1panel.live&quot;
    ]
}
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;如果不方便重启Docker服务，也可以不用设置全局加速地址，拉取镜像时增加加速地址即可，示例：&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;docker pull docker.1panel.live/library/mysql:5.7
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;说明：&lt;code&gt;library&lt;/code&gt;是一个特殊的命名空间，它代表的是官方镜像。如果是某个用户的镜像就把&lt;code&gt;library&lt;/code&gt;替换为镜像的用户名。&lt;/p&gt;
&lt;h3&gt;Docker Desktop 配置&lt;/h3&gt;
&lt;p&gt;对于电脑的&lt;code&gt;Docker Desktop&lt;/code&gt;用户，点击右上角&lt;code&gt;设置&lt;/code&gt;，找到&lt;code&gt;Docker Engine&lt;/code&gt;然后修改配置，修改后的示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;builder&quot;: {
    &quot;gc&quot;: {
      &quot;defaultKeepStorage&quot;: &quot;20GB&quot;,
      &quot;enabled&quot;: true
    }
  },
  &quot;experimental&quot;: false,
  &quot;registry-mirrors&quot;: [
    &quot;https://docker.1ms.run&quot;,
    &quot;https://hub.rat.dev&quot;,
    &quot;https://docker.1panel.live&quot;
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后点击右下角的&lt;code&gt;Apply &amp;amp; restart&lt;/code&gt;保存并重启即可。&lt;/p&gt;
&lt;h3&gt;检查加速是否生效&lt;/h3&gt;
&lt;p&gt;查看docker系统信息 &lt;code&gt;docker info&lt;/code&gt;，如果从结果中看到了你配置的加速地址，说明配置成功。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Registry Mirrors:
 [...]
 https://docker.1panel.live
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;使用代理拉取镜像&lt;/h2&gt;
&lt;h4&gt;创建配置文件&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/systemd/system/docker.service.d
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;在文件中添加代理&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;[Service]
Environment=&quot;HTTP_PROXY=http://127.0.0.1:1080&quot;
Environment=&quot;HTTPS_PROXY=http://127.0.0.1:1080&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;重启Docker&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;查看环境变量&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl show --property=Environment docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;本地代理转发到服务器&lt;/h4&gt;
&lt;p&gt;使用SSH反向转发把本地的10808端口的流量转发给远程服务器1080端口&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -R 1080:127.0.0.1:10808 root@服务器地址 -N
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;-N&lt;/code&gt; 代表仅连接但不打开对话框&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;备用方法：打包镜像到本地&lt;/h2&gt;
&lt;p&gt;1：压缩保存镜像到本地&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker save 镜像名 &amp;gt; 镜像名.tar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2：手动上传到另一个服务器&lt;/p&gt;
&lt;p&gt;3：另一个服务器解压镜像&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker load &amp;lt; 镜像名.tar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4：查看镜像&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Docker Hub 镜像测速&lt;/h2&gt;
&lt;p&gt;拉取镜像时，可使用 &lt;code&gt;time&lt;/code&gt; 统计所花费的总时间。测速前记得移除本地的镜像。&lt;/p&gt;
&lt;p&gt;例如：&lt;code&gt;time docker pull node:latest&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;为Docker启用IPV6&lt;/h2&gt;
&lt;p&gt;创建或修改&lt;code&gt;/etc/docker/daemon.json&lt;/code&gt;文件&lt;/p&gt;
&lt;p&gt;增加如下配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;ipv6&quot;: true,
  &quot;fixed-cidr-v6&quot;: &quot;2001:db8:1::/64&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重启：&lt;code&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;卸载Docker&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl stop docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /etc/docker /var/lib/docker
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Docker最新稳定加速源列表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;提供者&lt;/th&gt;
&lt;th&gt;镜像加速地址&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;th&gt;加速类型&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://1panel.cn/docs/user_manual/containers/setting/&quot;&gt;1panel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://docker.1panel.live&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;无限制&lt;/td&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docker.1ms.run&quot;&gt;毫秒镜像&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://docker.1ms.run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;有黑名单&amp;amp;可选国内CDN&lt;/td&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/DaoCloud/public-image-mirror&quot;&gt;DaoCloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://docker.m.daocloud.io&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;白名单和限流&lt;/td&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://console.huaweicloud.com/swr/#/swr/dashboard&quot;&gt;华为云&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://***.mirror.swr.myhuaweicloud.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;需登录分配&lt;/td&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://cloud.tencent.com/document/product/1207/45596&quot;&gt;腾讯云&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://mirror.ccs.tencentyun.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;仅限腾讯云机器&lt;/td&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://doc.nju.edu.cn/books/e1654&quot;&gt;南京大学&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://ghcr.nju.edu.cn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ghcr加速&lt;/td&gt;
&lt;td&gt;ghcr&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://doc.nju.edu.cn/books/e1654&quot;&gt;南京大学&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://k8s.nju.edu.cn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;k8s加速&lt;/td&gt;
&lt;td&gt;k8s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参考链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://docs.docker.com/registry/recipes/mirror/&lt;/li&gt;
&lt;li&gt;https://status.1panel.top/status/docker&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;转载自 &lt;a href=&quot;https://emohe.cn/posts/docker/#%E5%AE%89%E8%A3%85docker&quot;&gt;emohe.cn&lt;/a&gt;
国内从 Docker Hub 拉取镜像有时会遇到困难，此时可以配置镜像加速器。&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item></channel></rss>