<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
  <title>红枫吟 - Linux</title>
    <subtitle>风落花语风落天，花落风雨花落田.</subtitle>
  <link href="https://honmaple.me/posts/tech/linux/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="https://honmaple.me/posts/tech/linux/"/>
  <generator uri="https://github.com/honmaple/snow">Snow</generator>
    <updated>Sun, 22 Feb 2026 22:20:06 +0000</updated>
  <id>https://honmaple.me</id>
    <entry xml:lang="zh">
      <title>ubuntu24.04环境配置</title>
      <link href="https://honmaple.me/posts/2026/01/ubuntu-note/" rel="alternate"></link>
      <published>Fri, 02 Jan 2026 18:51:48 +0000</published>
      <updated>Sun, 22 Feb 2026 22:20:06 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2026/01/ubuntu-note/" type="text/html"/>
      <id>https://honmaple.me/posts/2026/01/ubuntu-note/</id>
      <summary type="html">
&lt;blockquote&gt;
&lt;p&gt;
最近我在腾讯云的服务器快过期了，但是续费又太贵，所以趁着活动又买了一台3年的轻量云。其实这台服务器上也没有什么服务，主要还是因为有一个已经备案的域名需要保一下，否则备案掉了之后再次备案太过麻烦。
&lt;/p&gt;

&lt;p&gt;
我之前的服务器还在用着 &lt;b&gt;ubuntu18.04 LTS&lt;/b&gt;，此次迁移准备升级一下系统到 &lt;b&gt;ubuntu24.04 LTS&lt;/b&gt;，故此记录
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
注意: 以下命令以 &lt;code&gt;#&lt;/code&gt; 开头则使用的是root账户，以 &lt;code&gt;$&lt;/code&gt; 开头则为普通账户
&lt;/p&gt;

&lt;h2 id=&quot;heading-1&quot;&gt;系统设置&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;修改主机名称&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# hostnamectl set-hostname [名称]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.2&quot;&gt;创建新用户&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 删除已存在的用户
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# deluser --remove-home ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ul&gt;</summary>
      <content type="html">
&lt;blockquote&gt;
&lt;p&gt;
最近我在腾讯云的服务器快过期了，但是续费又太贵，所以趁着活动又买了一台3年的轻量云。其实这台服务器上也没有什么服务，主要还是因为有一个已经备案的域名需要保一下，否则备案掉了之后再次备案太过麻烦。
&lt;/p&gt;

&lt;p&gt;
我之前的服务器还在用着 &lt;b&gt;ubuntu18.04 LTS&lt;/b&gt;，此次迁移准备升级一下系统到 &lt;b&gt;ubuntu24.04 LTS&lt;/b&gt;，故此记录
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
注意: 以下命令以 &lt;code&gt;#&lt;/code&gt; 开头则使用的是root账户，以 &lt;code&gt;$&lt;/code&gt; 开头则为普通账户
&lt;/p&gt;

&lt;h2 id=&quot;heading-1&quot;&gt;系统设置&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;修改主机名称&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# hostnamectl set-hostname [名称]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.2&quot;&gt;创建新用户&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 删除已存在的用户
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# deluser --remove-home ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;# deluser --remove-home lighthouse&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 添加新用户
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# adduser myuser&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      用户信息比如全名、房间号等，这些可以直接按 &lt;code&gt;Enter&lt;/code&gt; 跳过
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 添加sudo权限
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# usermod -aG sudo myuser&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 添加公钥
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;# su - 用户名
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ mkdir ~/.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ chmod 700 ~/.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;$ vi ~/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;$ chmod 600 ~/.ssh/authorized_keys&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-1.3&quot;&gt;连接数限制&lt;/h3&gt;
&lt;p&gt;
    编辑文件 &lt;code&gt;/etc/security/limits.conf&lt;/code&gt;，在文件末尾添加以下内容：
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;* soft nofile 65535
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;* hard nofile 65535
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;* soft nproc 20480
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;* hard nproc 20480&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    注：&lt;b&gt;nofile&lt;/b&gt; 是文件打开数，&lt;b&gt;nproc&lt;/b&gt; 是最大进程数。&lt;code&gt;*&lt;/code&gt; 代表除 &lt;b&gt;root&lt;/b&gt; 外的所有用户，如果需要添加 &lt;b&gt;root&lt;/b&gt;，则增加
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root soft nofile 65535
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;root hard nofile 65535&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.4&quot;&gt;交换内存&lt;/h3&gt;
&lt;p&gt;
    默认的 &lt;code&gt;vm.swappiness&lt;/code&gt; 为 &lt;b&gt;60&lt;/b&gt;，表示内存使用率超过 &lt;b&gt;100%-60%=40%&lt;/b&gt; 时就开始使用交换分区
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 查看当前swappiness
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ cat /proc/sys/vm/swappiness&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 临时修改
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo sysctl vm.swappiness=10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ cat /proc/sys/vm/swappiness&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 永久修改
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ echo &amp;#34;vm.swappiness=10&amp;#34; | sudo tee -a /etc/sysctl.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo sysctl -p&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-1.5&quot;&gt;启用BBR&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ echo &amp;#34;net.core.default_qdisc=fq&amp;#34; | sudo tee -a /etc/sysctl.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ echo &amp;#34;net.ipv4.tcp_congestion_control=bbr&amp;#34; | sudo tee -a /etc/sysctl.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ sudo sysctl -p&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;系统服务&lt;/h2&gt;
&lt;h3 id=&quot;heading-2.1&quot;&gt;motd&lt;/h3&gt;
&lt;p&gt;
    禁用终端广告
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;sudo sed -i &amp;#39;s/ENABLED=1/ENABLED=0/&amp;#39; /etc/default/motd-news&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.2&quot;&gt;pro&lt;/h3&gt;
&lt;p&gt;
    禁用 &lt;b&gt;pro&lt;/b&gt; 和 &lt;b&gt;esm&lt;/b&gt; 的相关提示
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo chmod -x /etc/update-motd.d/10-help-text
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo chmod -x /etc/update-motd.d/91-contract-ua-esm-status
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ sudo chmod -x /etc/update-motd.d/90-updates-available&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    只清空，不删除文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;sudo truncate -s 0 /etc/apt/apt.conf.d/20apt-esm-hook.conf&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.3&quot;&gt;ssh&lt;/h3&gt;
&lt;p&gt;
    修改配置 &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 修改端口
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;Port 22&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      取消注释并修改为想要的端口，然后在腾讯云控制台防火墙添加放行策略
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 禁用root登陆
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;PermitRootLogin no&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      请在添加完成&lt;b&gt;普通用户&lt;/b&gt;后再操作
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 重启服务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo systemctl restart ssh&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
      如果修改 &lt;code&gt;sshd_config&lt;/code&gt; 不生效
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo systemctl stop ssh.socket
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo systemctl disable ssh.socket
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ sudo systemctl restart ssh&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-2.4&quot;&gt;unattended-upgrades&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 停止服务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo systemctl stop unattended-upgrades
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo systemctl disable unattended-upgrades&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 卸载
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo apt remove --purge unattended-upgrades&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-2.5&quot;&gt;snap&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 停止服务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo systemctl stop snapd.service
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo systemctl disable snapd.service
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ sudo systemctl mask snapd.service&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 查看已安装软件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ snap list&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 卸载安装软件(把使用 &lt;b&gt;snap&lt;/b&gt; 安装的软件依次卸载)
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo snap remove --purge [软件名称]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 卸载 &lt;b&gt;snap&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo apt autoremove --purge snapd&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      清理目录
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo rm &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;rf &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;cache&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;snapd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo rm &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;rf &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;snap
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo rm &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;rf &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;snapd&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 阻止 &lt;b&gt;snapd&lt;/b&gt; 被自动重新安装
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo cat &amp;lt;&amp;lt;EOF | sudo tee /etc/apt/preferences.d/nosnap.pref
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Package: snapd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;Pin: release a=*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;Pin-Priority: -10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;EOF&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-3&quot;&gt;其它服务&lt;/h2&gt;
&lt;h3 id=&quot;heading-3.1&quot;&gt;docker&lt;/h3&gt;
&lt;p&gt;
    官方文档: &lt;a href=&quot;https://docs.docker.com/engine/install/ubuntu/&quot;&gt;https://docs.docker.com/engine/install/ubuntu/&lt;/a&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 设置apt仓库
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo apt install ca&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;certificates curl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo install &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;m &lt;span style=&quot;color:#ae81ff&quot;&gt;0755&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;apt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;keyrings
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo curl &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;fsSL https:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;download&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;com&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;linux&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ubuntu&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;gpg &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;o &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;apt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;keyrings&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;asc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo chmod a&lt;span style=&quot;color:#f92672&quot;&gt;+&lt;/span&gt;r &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;apt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;keyrings&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;asc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo tee &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;apt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;sources&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;list&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;d&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;sources &lt;span style=&quot;color:#f92672&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;Types: deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;URIs: https:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;download&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;com&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;linux&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;Suites: &lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;os&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;release &lt;span style=&quot;color:#f92672&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; echo &lt;span style=&quot;color:#e6db74&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;${UBUNTU_CODENAME:-$VERSION_CODENAME}&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;Components: stable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;Signed&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;By: &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;apt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;keyrings&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;asc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;$&lt;/span&gt; sudo apt update&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 安装
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 普通用户权限
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo usermod -aG docker [用户名]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 镜像
      由于官方仓库无法连接，修改 &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt; 添加下面配置
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;registry-mirrors&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;https://mirror.ccs.tencentyun.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    ]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      然后重启docker即可
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo systemctl restart docker&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-3.2&quot;&gt;other&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo apt install tree&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-3.3&quot;&gt;腾讯云组件&lt;/h3&gt;
&lt;p&gt;
    卸载腾讯云内置的组件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ sudo /usr/local/qcloud/monitor/barad/admin/uninstall.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ sudo /usr/local/qcloud/stargate/admin/uninstall.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;$ sudo /usr/local/qcloud/YunJing/uninst.sh&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</content>
        <category term="Linux"></category>
    </entry>
    <entry xml:lang="zh">
      <title>Zerotier笔记</title>
      <link href="https://honmaple.me/posts/2023/09/zerotier-note/" rel="alternate"></link>
      <published>Sun, 17 Sep 2023 15:41:40 +0000</published>
      <updated>Sun, 24 Sep 2023 16:52:48 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2023/09/zerotier-note/" type="text/html"/>
      <id>https://honmaple.me/posts/2023/09/zerotier-note/</id>
      <summary type="html">
&lt;blockquote&gt;
&lt;p&gt;
&lt;b&gt;zerotier&lt;/b&gt; 可谓是慕名许久，但之前一直没有太多内网穿透和异地组网的需求，此次准备在外网访问家里NAS部署的部分应用，所以也调研了一些相关的应用，最终选择了 &lt;b&gt;zerotier&lt;/b&gt; 来对我现有的机器进行组网
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;FRP&lt;/b&gt;: 需要将服务器的端口映射出去，不太喜欢这种暴力的方式。我目前的服务基本上只会在 &lt;code&gt;0.0.0.0&lt;/code&gt; 监听80、443等常用端口，其它服务一律监听 &lt;code&gt;127.0.0.1&lt;/code&gt;，通过nginx访问内部的服务
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;DDNS&lt;/b&gt;: 家里的NAS直接暴露在公网，这非常不安全，而且家用宽带无法使用80，443端口，只能使用高位端口
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;ZEROTIER&lt;/b&gt;: 使用 &lt;b&gt;P2P&lt;/b&gt; 的方式对多台服务器进行组网，映射的端口只允许加入组网的设备访问，这在速度和安全性上确实是我所需要的...&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</summary>
      <content type="html">
&lt;blockquote&gt;
&lt;p&gt;
&lt;b&gt;zerotier&lt;/b&gt; 可谓是慕名许久，但之前一直没有太多内网穿透和异地组网的需求，此次准备在外网访问家里NAS部署的部分应用，所以也调研了一些相关的应用，最终选择了 &lt;b&gt;zerotier&lt;/b&gt; 来对我现有的机器进行组网
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;FRP&lt;/b&gt;: 需要将服务器的端口映射出去，不太喜欢这种暴力的方式。我目前的服务基本上只会在 &lt;code&gt;0.0.0.0&lt;/code&gt; 监听80、443等常用端口，其它服务一律监听 &lt;code&gt;127.0.0.1&lt;/code&gt;，通过nginx访问内部的服务
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;DDNS&lt;/b&gt;: 家里的NAS直接暴露在公网，这非常不安全，而且家用宽带无法使用80，443端口，只能使用高位端口
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;ZEROTIER&lt;/b&gt;: 使用 &lt;b&gt;P2P&lt;/b&gt; 的方式对多台服务器进行组网，映射的端口只允许加入组网的设备访问，这在速度和安全性上确实是我所需要的
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;heading-1&quot;&gt;相关概念&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;Planet&lt;/b&gt;: 行星服务器，也称根服务器。主要用于管理 &lt;b&gt;zerotier&lt;/b&gt; 客户端的地址信息
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;Moon&lt;/b&gt;: 月亮服务器，也称中继服务器、跳转服务器。主要用于当两台设备无法直连时，可以通过Moon中转连接
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;Leaf&lt;/b&gt;: 组网使用的设备，可以是一台服务器，一台NAS，甚至一台手机
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;部署教程&lt;/h2&gt;
&lt;p&gt;
   现在我有三台设备需要进行组网，一台A在国外， 一台B在国内(腾讯云)，还有一台C在家里(NAS)。我准备将私有Planet部署到机器A，同时机器A也会加入到内网里，A、B、C三台设备可以通过内网相互访问
&lt;/p&gt;

&lt;h3 id=&quot;heading-2.1&quot;&gt;UI界面&lt;/h3&gt;
&lt;p&gt;
    以 &lt;code&gt;jonnyan404/zerotier-planet&lt;/code&gt; 为例
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 创建目录
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;mkdir /opt/zerotier /opt/ztncui&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 部署服务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;name ztncui &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;restart always \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;p &lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt;:&lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;p &lt;span style=&quot;color:#ae81ff&quot;&gt;9993&lt;/span&gt;:&lt;span style=&quot;color:#ae81ff&quot;&gt;9993&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;tcp &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;p &lt;span style=&quot;color:#ae81ff&quot;&gt;9993&lt;/span&gt;:&lt;span style=&quot;color:#ae81ff&quot;&gt;9993&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;udp \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e MYADDR&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;{&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;服&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;务&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;器&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;公&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;网&lt;/span&gt;&lt;span style=&quot;color:#a6e22e&quot;&gt;IP&lt;/span&gt;} \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e HTTP_PORT&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e HTTP_ALL_INTERFACES&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;yes \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e ZTNCUI_PASSWD&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;mrdoc&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;fun \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;key&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;networks&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;9&lt;/span&gt;&lt;span&gt;keynetworks&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
       然后就可以通过 &lt;code&gt;服务器公网IP:4000&lt;/code&gt; 访问UI管理界面，默认的用户名和密码: &lt;code&gt;admin,mrdoc.fun&lt;/code&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;heading-2.2&quot;&gt;Zerotier客户端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;Linux&lt;/b&gt;: 部署方式很简单，注意区分 &lt;b&gt;host网络&lt;/b&gt; 和 &lt;b&gt;bridge网络&lt;/b&gt;，这两个在安全性有所区别(具体在下面讲)
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;name zerotier &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;restart always \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;net host \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;cap&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;add NET_ADMIN \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;device &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;dev&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;net&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;tun \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:latest&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      如果使用私有Planet，记得替换 &lt;code&gt;/opt/zerotier/planet&lt;/code&gt; 文件
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;Android&lt;/b&gt;: 推荐使用 &lt;a href=&quot;https://github.com/kaaass/ZerotierFix&quot;&gt;https://github.com/kaaass/ZerotierFix&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-2.3&quot;&gt;私有Planet&lt;/h3&gt;
&lt;p&gt;
    默认的Planet信息是硬编码在zertier代码里，如果安装好客户端后会在 &lt;code&gt;zerotier-cli peers&lt;/code&gt; 看到官方的Planet服务器。
&lt;/p&gt;

&lt;p&gt;
    而部署私有的Planet的目的:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 官方的服务器基本都位于国外或者香港，服务连通性无法得到保证
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 安全性。试想一个陌生的设备加入到网络，而这个设备的许可只需要得到官方的认证即可。当然，官方是基本不可能发生这样的情况，但如果有一个完全控制的网络，何乐而不为呢
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
    如何生成私有Planet文件?
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;git clone https://github.com/jonnyan404/zerotier-planet --depth=1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;cd zerotier-planet
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;docker cp mkmoonworld-x86_64 ztncui:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;docker cp patch.sh ztncui:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;docker exec -it ztncui bash /tmp/patch.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;docker restart ztncui&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    这样就会在挂载目录 &lt;code&gt;/opt/zerotier&lt;/code&gt; 下生成一个新的 &lt;b&gt;planet&lt;/b&gt; 文件，记得下载并备份。&lt;b&gt;所有加入组网的客户端都需要替换该文件&lt;/b&gt;
&lt;/p&gt;

&lt;h3 id=&quot;heading-2.4&quot;&gt;私有Planet服务器加入组网&lt;/h3&gt;
&lt;p&gt;
    如果按照上述部署流程也可以正常使用 &lt;code&gt;zerotier&lt;/code&gt; 组网，&lt;b&gt;但是&lt;/b&gt;，如果想要把部署了私有Planet的设备也加入到内网，貌似没有一篇文章说到。 所以我专门研究了一下，想要把私有Planet的机器也加入到内网，大概是可以分为下面几种方式:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 (&lt;b&gt;不推荐&lt;/b&gt;) 修改ztncui内部zerotier的默认端口9993 &lt;br /&gt;
       在 &lt;code&gt;/opt/zerotier&lt;/code&gt; 目录下添加一个 &lt;code&gt;local.conf&lt;/code&gt;，并设置
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;primaryPort&amp;#34;&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;9995&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
       然后修改 &lt;code&gt;patch.sh&lt;/code&gt; 文件里的 &lt;code&gt;9993&lt;/code&gt; 端口，以及 &lt;code&gt;/start_ztncui.sh&lt;/code&gt; 添加一行
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;echo &amp;#34;ZT_ADDR=localhost:$ZT_PORT&amp;#34; &amp;gt; /opt/key-networks/ztncui/.env&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 部署两个zerotier: 除了ztncui容器内部的一个zerotier，再在机器上部署一个客户端，并修改端口，避免端口冲突
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 (&lt;b&gt;推荐&lt;/b&gt;) ztncui镜像的UI和zerotier分开部署&lt;br /&gt;
       我研究后才发现 &lt;code&gt;ztncui&lt;/code&gt; 的相关镜像把事情弄的很复杂，都把 &lt;code&gt;ztncui&lt;/code&gt; 和 &lt;code&gt;zerotier&lt;/code&gt; 放到同一个镜像，专门去连接 &lt;code&gt;localhost:9993&lt;/code&gt; 。其实是可以把两个镜像分开的，&lt;b&gt;UI&lt;/b&gt; 只做 &lt;b&gt;UI&lt;/b&gt; ，使用 &lt;b&gt;API&lt;/b&gt; 去连接 &lt;b&gt;zerotier&lt;/b&gt; 官方的镜像
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;heading-2.5&quot;&gt;UI和Zerotier分开部署&lt;/h3&gt;
&lt;p&gt;
    如果想要自己构建Docker镜像，可以参考 &lt;a href=&quot;https://github.com/honmaple/ztncui-aio&quot;&gt;honmaple/ztncui-aio&lt;/a&gt;
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 部署 &lt;b&gt;zerotier&lt;/b&gt; 的客户端(部署过的可以忽略)
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;name zerotier &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;restart always &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;net&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;host &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;cap&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;add NET_ADMIN &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;device &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;dev&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;net&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;tun &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one zerotier&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:latest&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 部署 &lt;b&gt;UI&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;docker run &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;name ztncui &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;restart always \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e MYADDR&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;{&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;服&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;务&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;器&lt;/span&gt;&lt;span style=&quot;color:#a6e22e&quot;&gt;IP&lt;/span&gt;} \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e HTTP_PORT&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e HTTP_ALL_INTERFACES&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;yes \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e ZT_ADDR&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;{zerotier地址, &lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;比&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;如&lt;/span&gt;Docker网关:&lt;span style=&quot;color:#ae81ff&quot;&gt;9993&lt;/span&gt;} \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;e ZT_TOKEN&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;{&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;可&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;以&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;为&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;空&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;但&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;需&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;要&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;挂&lt;/span&gt;&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;载&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one的配置路径} \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;etc \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;p &lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt;:&lt;span style=&quot;color:#ae81ff&quot;&gt;4000&lt;/span&gt; \
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;honmaple&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;ztncui:latest&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
       &lt;b&gt;ZT_ADDR&lt;/b&gt;: 由于 &lt;b&gt;zerotier&lt;/b&gt; 和 &lt;b&gt;ztncui&lt;/b&gt; 没有部署在一个容器，所以需要从UI内部访问宿主机的 &lt;b&gt;&lt;b&gt;9993&lt;/b&gt;&lt;/b&gt; 端口，这里可以使用UI容器的网关访问，比如UI容器的IP是 &lt;b&gt;&lt;b&gt;172.17.0.12&lt;/b&gt;&lt;/b&gt;，则访问 &lt;b&gt;&lt;b&gt;172.17.0.1&lt;/b&gt;&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
       另外，&lt;b&gt;zerotier&lt;/b&gt; 默认的API接口只允许 &lt;b&gt;&lt;b&gt;127.0.0.1&lt;/b&gt;&lt;/b&gt; 访问，所以需要在挂载目录 &lt;code&gt;/opt/zerotier&lt;/code&gt; 下新建一个 &lt;b&gt;&lt;b&gt;local.conf&lt;/b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;allowManagementFrom&amp;#34;&lt;/span&gt;: [&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;127.0.0.1/24&amp;#34;&lt;/span&gt;, &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;::1&amp;#34;&lt;/span&gt;, &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;172.17.0.1/24&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 修改归属的用户和用户组
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker exec &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;it zerotier bash
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;cd &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;chown zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one:zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one local&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;conf
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 生成私有Planet文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;git clone https://github.com/honmaple/ztncui-aio --depth=1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;cd ztncui-aio
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;docker cp script/mkmoonworld-x86_64 zerotier:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;docker cp script/patch.sh zerotier:/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;docker exec -it zerotier bash /tmp/patch.sh {服务器IP}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 重启
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker restart zerotier&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
       这样就能使私有Planet和zerotier客户端共存，让Planet服务器也能加入到内网环境了
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;heading-3&quot;&gt;组网教程&lt;/h2&gt;
&lt;h3 id=&quot;heading-3.1&quot;&gt;创建网络&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 使用浏览器打开UI管理界面 &lt;code&gt;{服务器公网IP}:4000&lt;/code&gt;，&lt;code&gt;honmaple/ztncui&lt;/code&gt; 默认用户名密码是 &lt;code&gt;admin,password&lt;/code&gt;
       
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-01.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-01.jpg-thumb&quot;
         alt=&quot;zerotier-01.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://honmaple.me/libs/glightbox/glightbox.min.css&quot;&gt;
  &lt;script src=&quot;https://honmaple.me/libs/vanilla-lazyload/lazyload.min.js&quot; defer&gt;&lt;/script&gt;
  &lt;script src=&quot;https://honmaple.me/libs/glightbox/glightbox.min.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lazyload.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lightbox.js&quot; defer&gt;&lt;/script&gt;

&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 点击 &lt;code&gt;Add network&lt;/code&gt;，输入一个网络名称，比如 &lt;b&gt;testlab&lt;/b&gt;。然后选择 &lt;code&gt;Easy setup&lt;/code&gt;
       
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-02.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-02.jpg-thumb&quot;
         alt=&quot;zerotier-02.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 添加一个内网网段，记得这个内网网段不能和需要加入组网的设备网段相同，比如我的设备C网段是 &lt;code&gt;192.168.31.0/24&lt;/code&gt; ，就不能添加该网段，另外Docker所使用的网段 &lt;code&gt;172.0.0.0/8&lt;/code&gt; 也需要避免添加，所以我这里选择 &lt;code&gt;10.8.230.0/24&lt;/code&gt;。&lt;b&gt;不同的设备内网网段不同，请根据实际添加&lt;/b&gt;
       
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-03.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-03.jpg-thumb&quot;
         alt=&quot;zerotier-03.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;heading-3.2&quot;&gt;加入网络&lt;/h3&gt;
&lt;p&gt;
    创建好网络后就会得到一串网络ID，登录到设备，然后使用
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker exec zerotier zerotier-cli join {网络ID}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    加入网络，正常情况下会得到
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;200 join OK&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    刷新管理界面就会出现一个新的成员
    
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-04.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-04.jpg-thumb&quot;
         alt=&quot;zerotier-04.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

    然后勾选 &lt;b&gt;Authorizerd&lt;/b&gt; 允许加入，再次刷新，就能看到该设备分配了一个新的IP &lt;code&gt;10.8.230.170&lt;/code&gt;
    
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-05.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-05.jpg-thumb&quot;
         alt=&quot;zerotier-05.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;
    返回设备，可以看到设备多了一个新的IP
    
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-06.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-06.jpg-thumb&quot;
         alt=&quot;zerotier-06.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;

&lt;h3 id=&quot;heading-3.3&quot;&gt;跨网段访问&lt;/h3&gt;
&lt;p&gt;
    什么是跨网段访问? 比如现在我可以通过 &lt;b&gt;10.8.230.0/24&lt;/b&gt; 访问已经加入组网的设备，但我想要在&lt;b&gt;设备B&lt;/b&gt;上访问我家里的其它设备，但是，我家里设备的网段是 &lt;b&gt;192.168.31.0/24&lt;/b&gt;，正常是无法访问的，只能访问已经加入组网的Nas。这时需要配置静态路由，让设备B访问 &lt;b&gt;192.168.31.0/24&lt;/b&gt; 网段时走zerotier配置好的IP。
&lt;/p&gt;

&lt;p&gt;
    如果手动添加就是
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;ip route add 192.168.31.0/24 via 10.8.230.170 dev {zerotier建立的网卡}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    当然，也可以直接使用zerotier管理界面添加，选择 &lt;code&gt;Routes&lt;/code&gt;
    
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-07.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-07.jpg-thumb&quot;
         alt=&quot;zerotier-07.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;
    &lt;b&gt;Target&lt;/b&gt; 输入想要访问的网段：&lt;code&gt;192.168.31.0/24&lt;/code&gt;，&lt;b&gt;Gateway&lt;/b&gt; 输入之前分配的IP：&lt;code&gt;10.8.230.170&lt;/code&gt;。
    
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/09/zerotier-08.jpg-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/09/zerotier-08.jpg-thumb&quot;
         alt=&quot;zerotier-08.jpg&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;
    创建好后可以在设备B上执行
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;ping 192.168.31.XX(除设备C之外的内网设备IP)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    查看网络是否连通
&lt;/p&gt;

&lt;h3 id=&quot;heading-3.4&quot;&gt;安全限制&lt;/h3&gt;
&lt;p&gt;
    正因为跨网段访问只需要添加一个静态路由，就能访问我家里的其它设备，这无疑是非常不安全的。如果私有Planet服务器遭到入侵，我家里的所有联网设备都会暴露出去，即使加入组网只是其中的一台。基于此原因，我专门调整了一下zerotier的部署方式，不再使用 &lt;b&gt;host网络&lt;/b&gt; 的方式部署，而是创建一个新的Docker网络 &lt;code&gt;zerotier&lt;/code&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker network create --driver=bridge --subnet=192.168.100.0/24 --gateway=192.168.100.1 zerotier&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    注: &lt;code&gt;192.168.100.0/24&lt;/code&gt; 是一个全新的网段，不要使用172网段
&lt;/p&gt;

&lt;p&gt;
    然后删除之前部署的 &lt;b&gt;zerotier&lt;/b&gt; 客户端，并使用 &lt;b&gt;zerotier网络&lt;/b&gt; 重新部署
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker stop zerotier
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;docker rm zerotier
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;docker run &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;name zerotier &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;restart always &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;net zerotier &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;cap&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;add NET_ADMIN &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;device &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;dev&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;net&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;tun &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;v &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;opt&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;one zerotier&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;zerotier:latest&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    细心的朋友应该会发现我这里没有将 &lt;b&gt;9993&lt;/b&gt; 端口映射给宿主机，这是由于我测试发现两台设备只需要其中一台开放 &lt;code&gt;9993&lt;/code&gt; 端口，两台设备之间就能直连。如果两台设备都不开放端口，则会通过开放了端口的其它设备进行跳转，查看 &lt;b&gt;peers&lt;/b&gt; 会看到一直是 &lt;b&gt;RELAY&lt;/b&gt; 状态
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root@cf5f973bd294:/# zerotier-cli peers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;200 peers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&amp;lt;ztaddr&amp;gt;   &amp;lt;ver&amp;gt;  &amp;lt;role&amp;gt; &amp;lt;lat&amp;gt; &amp;lt;link&amp;gt;   &amp;lt;lastTX&amp;gt; &amp;lt;lastRX&amp;gt; &amp;lt;path&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;xxxxxxxxx  1.12.1 LEAF      -1 RELAY&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    这时想要从设备B访问我家里其它联网的设备已是不可能，除非突破Docker的限制。而正常情况下，我想要从设备B上访问的是部署在设备C的其它服务(以Docker服务为主)，所以，现在可以添加一个新的路由 &lt;b&gt;192.168.100.0/24&lt;/b&gt; 指向 &lt;b&gt;10.8.230.170&lt;/b&gt;，然后修改其它镜像使用的网络为 &lt;b&gt;zerotier&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run -d --rm --name=test-nginx --net=zerotier nginx:stable-alpine
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;docker exec -it test-nginx ip a&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    接着在设备B上执行
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;ping 192.168.100.3(test-nginx的IP)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;curl 192.168.100.3&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    如果无法访问，需要在Docker所在宿主机上添加路由
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;ip route add 10.8.230.0/24 via 192.168.100.2(zerotier客户端的IP)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    另外，由于Docker的IP可能会发生改变，除创建容器时指定 &lt;code&gt;--ip&lt;/code&gt; 外，还可以将服务的端口映射出去，比如 &lt;b&gt;NasTools&lt;/b&gt; 使用端口为 3000，那么可以在创建容器时指定
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;-p 11300:3000&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    然后在设备B上访问 &lt;code&gt;192.168.100.1:11300&lt;/code&gt;，即&lt;b&gt;网关地址+映射的端口&lt;/b&gt;，这样就能避免Docker重启后IP发生改变而导致服务异常的情况
&lt;/p&gt;

&lt;h2 id=&quot;heading-4&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;heading-4.1&quot;&gt;如何修改默认的9993端口?&lt;/h3&gt;
&lt;p&gt;
    在 &lt;b&gt;zerotier&lt;/b&gt; 挂载的目录下新建一个 &lt;code&gt;local.conf&lt;/code&gt; 文件，并设置
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;&amp;#34;primaryPort&amp;#34;&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;9995&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-5&quot;&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://github.com/honmaple/ztncui-aio&quot;&gt;https://github.com/honmaple/ztncui-aio&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://github.com/jonnyan404/zerotier-planet&quot;&gt;https://github.com/jonnyan404/zerotier-planet&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://github.com/zerotier/ZeroTierOne/blob/dev/README.docker.md&quot;&gt;https://github.com/zerotier/ZeroTierOne/blob/dev/README.docker.md&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://docs.zerotier.com/zerotier/zerotier.conf/&quot;&gt;https://docs.zerotier.com/zerotier/zerotier.conf/&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech/Geek"></category>
    </entry>
    <entry xml:lang="zh">
      <title>使用Github Actions自动打包Go项目</title>
      <link href="https://honmaple.me/posts/2023/03/使用Github Actions自动打包Go项目/" rel="alternate"></link>
      <published>Mon, 06 Mar 2023 02:22:23 +0000</published>
      <updated>Sat, 14 Dec 2024 18:12:53 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2023/03/使用Github Actions自动打包Go项目/" type="text/html"/>
      <id>https://honmaple.me/posts/2023/03/使用Github Actions自动打包Go项目/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;
   如果用过 &lt;b&gt;Gitlab Ci&lt;/b&gt;, 相信对此也非常熟悉，&lt;b&gt;GitHub Actions&lt;/b&gt; 是 &lt;b&gt;GitHub&lt;/b&gt; 推出的持续集成（Continuous Integration，简称 CI）服务，它提供了整套虚拟服务器环境，基于它可以进行构建、测试、打包、部署项目等等操作
&lt;/p&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;快速开始(Quickstart)&lt;/h2&gt;
&lt;p&gt;
   在自己的 &lt;code&gt;Github&lt;/code&gt; 仓库中找到 &lt;code&gt;Actions&lt;/code&gt; 标签页
   
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/03/github-actions-01.png-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/03/github-actions-01.png-thumb&quot;
         alt=&quot;github-actions-01.png&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://honmaple.me/libs/glightbox/glightbox.min.css&quot;&gt;
  &lt;script src=&quot;https://honmaple.me/libs/vanilla-lazyload/lazyload.min.js&quot; defer&gt;&lt;/script&gt;
  &lt;script src=&quot;https://honmaple.me/libs/glightbox/glightbox.min.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lazyload.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lightbox.js&quot; defer&gt;&lt;/script&gt;

&lt;/p&gt;

&lt;p&gt;
   点击 &lt;code&gt;Configure&lt;/code&gt;, 此时会生成一个 &lt;code&gt;.github/workflow/go.yml&lt;/code&gt; 文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;
   如果用过 &lt;b&gt;Gitlab Ci&lt;/b&gt;, 相信对此也非常熟悉，&lt;b&gt;GitHub Actions&lt;/b&gt; 是 &lt;b&gt;GitHub&lt;/b&gt; 推出的持续集成（Continuous Integration，简称 CI）服务，它提供了整套虚拟服务器环境，基于它可以进行构建、测试、打包、部署项目等等操作
&lt;/p&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;快速开始(Quickstart)&lt;/h2&gt;
&lt;p&gt;
   在自己的 &lt;code&gt;Github&lt;/code&gt; 仓库中找到 &lt;code&gt;Actions&lt;/code&gt; 标签页
   
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/03/github-actions-01.png-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/03/github-actions-01.png-thumb&quot;
         alt=&quot;github-actions-01.png&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://honmaple.me/libs/glightbox/glightbox.min.css&quot;&gt;
  &lt;script src=&quot;https://honmaple.me/libs/vanilla-lazyload/lazyload.min.js&quot; defer&gt;&lt;/script&gt;
  &lt;script src=&quot;https://honmaple.me/libs/glightbox/glightbox.min.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lazyload.js&quot; defer&gt;&lt;/script&gt;
    &lt;script src=&quot;https://honmaple.me/js/lightbox.js&quot; defer&gt;&lt;/script&gt;

&lt;/p&gt;

&lt;p&gt;
   点击 &lt;code&gt;Configure&lt;/code&gt;, 此时会生成一个 &lt;code&gt;.github/workflow/go.yml&lt;/code&gt; 文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# This workflow will build a golang project&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;push&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;branches&lt;/span&gt;: [ &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;master&amp;#34;&lt;/span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;pull_request&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;branches&lt;/span&gt;: [ &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;master&amp;#34;&lt;/span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;runs-on&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/checkout@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Set up Go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/setup-go@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;go-version&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1.19&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go build -v ./...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go test -v ./...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-3&quot;&gt;多平台编译(Cross Compile)&lt;/h2&gt;
&lt;h3 id=&quot;heading-3.1&quot;&gt;交叉编译&lt;/h3&gt;
&lt;p&gt;
    对于非 &lt;code&gt;CGO&lt;/code&gt; 项目，&lt;code&gt;Go&lt;/code&gt; 提供了一种十分方便的方式来进行交叉编译，只需要指定 &lt;code&gt;GOOS&lt;/code&gt; 和 &lt;code&gt;GOARCH&lt;/code&gt; 环境变量
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
  Mac下编译Linux, Windows平台的64位可执行程序：
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ CGO_ENABLED&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; GOOS&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;linux GOARCH&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;amd64 go build .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ CGO_ENABLED&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; GOOS&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;windows GOARCH&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;amd64 go build .&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 Linux下编译Mac, Windows平台的64位可执行程序：
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;$ CGO_ENABLED&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; GOOS&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;darwin GOARCH&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;amd64 go build .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;$ CGO_ENABLED&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; GOOS&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;windows GOARCH&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;amd64 go build .&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    同样的，我们可以在 &lt;code&gt;Gtihub Actions&lt;/code&gt; 中设置环境变量来编译非 &lt;code&gt;CGO&lt;/code&gt; 项目，这里需要使用 &lt;code&gt;matrix&lt;/code&gt; 策略，让我们基于不同的参数创建并行的任务，比如编译Go时指定不同的环境变量
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 首先编写任务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;strategy&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;matrix&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;goos&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;linux, darwin]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;goarch&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;amd64]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;runs-on&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Checkout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/checkout@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Set up Go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/setup-go@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;go-version&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1.19&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Download dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go mod download&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go build -v -o snow .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#75715e&quot;&gt;# 指定编译时的环境变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;GOOS&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;${{ matrix.goos }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;GOARCH&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;${{ matrix.goarch }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;CGO_ENABLED&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      这样就创建了 &lt;code&gt;GOOS=linux GOARCH=amd64&lt;/code&gt; 和 &lt;code&gt;GOOS=darwin GOARCH=amd64&lt;/code&gt; 的两个任务, 当 &lt;code&gt;goarch&lt;/code&gt; 增加一个 &lt;code&gt;arm&lt;/code&gt; 的参数后，会组合成四个任务, 如果需要指定或者排除某个选项，可以使用 &lt;code&gt;include&lt;/code&gt; 或者 &lt;code&gt;exclude&lt;/code&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;matrix&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;goos&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;linux, darwin]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;goarch&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;amd64, arm]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#75715e&quot;&gt;# 只包括linux编译选项&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;include&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;goos&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;goarch&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;amd64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;goos&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;goarch&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;arm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#75715e&quot;&gt;# 排除所有关于arm的编译选项&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;exclude&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;goarch&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;arm&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 然后执行 &lt;code&gt;git push&lt;/code&gt;, 这样就能在 &lt;code&gt;Github&lt;/code&gt; 的 &lt;code&gt;Actions&lt;/code&gt; 标签页看到执行结果
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-3.2&quot;&gt;跨平台编译&lt;/h3&gt;
&lt;p&gt;
    如果是非 &lt;code&gt;CGO&lt;/code&gt; 项目，可以使用Go内置的交叉编译，但如果是 &lt;code&gt;CGO&lt;/code&gt; 项目，上述的交叉编译大概率会失败(相关问题:&lt;a href=&quot;https://github.com/wellington/go-libsass/issues/67&quot;&gt;go-libsass&lt;/a&gt;)， 所以我们需要基于不同的平台来进行编译，幸运的是，&lt;code&gt;Github Actions&lt;/code&gt; 对此支持的非常好,
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 编写新任务
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;strategy&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;matrix&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;macos, linux]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;include&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;          - &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;macos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;os&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;macos-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;          - &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;os&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ubuntu-18.04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;runs-on&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;${{ matrix.os }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Checkout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/checkout@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Set up Go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/setup-go@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;go-version&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1.19&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Download dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go mod download&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;go build -v -o snow .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;CGO_ENABLED&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      注意 &lt;code&gt;runs-on&lt;/code&gt; 使用的 &lt;code&gt;matrix.os&lt;/code&gt; 变量, 它允许我们分别使用 &lt;code&gt;ubuntu-18.04&lt;/code&gt; 和 &lt;code&gt;macos-latest&lt;/code&gt; 两个平台进行编译，这时不用指定 &lt;code&gt;GOOS&lt;/code&gt; 和 &lt;code&gt;GOARCH&lt;/code&gt; 参数
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 执行 &lt;code&gt;git push&lt;/code&gt;, 可以看到执行结果
      
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/03/github-actions-02.png-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/03/github-actions-02.png-thumb&quot;
         alt=&quot;github-actions-02.png&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-4&quot;&gt;发布(Release)&lt;/h2&gt;
&lt;p&gt;
   当编译好一个二进制文件后，需要发布到 &lt;code&gt;Github&lt;/code&gt; 的 &lt;code&gt;Release&lt;/code&gt; 页，这时就需要添加新的任务, 目前官方的&lt;a href=&quot;https://github.com/actions/create-release&quot;&gt;actions/create-release&lt;/a&gt;已经无人维护，所以此次选择另外一个&lt;a href=&quot;https://github.com/ncipollo/release-action&quot;&gt;ncipollo/release-action&lt;/a&gt;
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Release&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#75715e&quot;&gt;# 只在预发布时才执行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;release&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;types&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;prereleased]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;strategy&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;matrix&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: [&lt;span style=&quot;color:#ae81ff&quot;&gt;macos, linux]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;include&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;          - &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;macos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;os&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;macos-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;archive-name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;darwin.tar.gz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;          - &lt;span style=&quot;color:#f92672&quot;&gt;build&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;os&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;archive-name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;linux.tar.gz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#75715e&quot;&gt;# 需要设置写权限才能自动发布&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;permissions&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;contents&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;write&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;26&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#ae81ff&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;27&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#75715e&quot;&gt;# 把二进制文件打包成压缩文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;28&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Prepare Packaging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;29&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;run&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;tar zcvf snow-${{ matrix.archive-name }}.tar.gz snow LICENSE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;30&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;31&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#75715e&quot;&gt;# 上传附件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;32&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Upload Artifacts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;33&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;actions/upload-artifact@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;34&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;35&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;snow-${{ matrix.archive-name }}.tar.gz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;36&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;path&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;snow-${{ matrix.archive-name }}.tar.gz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;37&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;38&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#75715e&quot;&gt;# 发布release版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;39&lt;/span&gt;&lt;span&gt;      - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Release version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;40&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;uses&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ncipollo/release-action@v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;41&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;if&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;github.event_name == &amp;#39;release&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;42&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;43&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;allowUpdates&lt;/span&gt;: &lt;span style=&quot;color:#66d9ef&quot;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;44&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;artifacts&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;snow-${{ matrix.archive-name }}.tar.gz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;45&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;token&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   当 &lt;code&gt;Github Actions&lt;/code&gt; 执行完成后，就能在 &lt;code&gt;Release&lt;/code&gt; 页看到我们发布的 &lt;code&gt;Package&lt;/code&gt;
   
  &lt;a class=&quot;mx-auto block w-fit max-w-full no-underline&quot; href=&quot;https://s.libforest.com/images/2023/03/github-actions-03.png-show&quot; data-img-lightbox data-gallery=&quot;page-images&quot; data-type=&quot;image&quot;&gt;
    &lt;img data-src=&quot;https://s.libforest.com/images/2023/03/github-actions-03.png-thumb&quot;
         alt=&quot;github-actions-03.png&quot;
         decoding=&quot;async&quot;
         class=&quot;lazy mx-auto cursor-zoom-in rounded-md &quot;&gt;
  &lt;/a&gt;

&lt;/p&gt;

&lt;h2 id=&quot;heading-5&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;heading-5.1&quot;&gt;version `GLIBC_2.33&#39; not found&lt;/h3&gt;
&lt;p&gt;
    使用 &lt;code&gt;Github Actions&lt;/code&gt; 发布一个新的版本，下载到本地执行时报错
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;./snow: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33&amp;#39; not found (required by ./snow)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;./snow: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34&amp;#39; not found (required by ./snow)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;./snow: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32&amp;#39; not found (required by ./snow)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;./snow: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29&amp;#39; not found (required by ./snow)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    这是由于使用的 &lt;code&gt;ubuntu&lt;/code&gt; 版本太高导致, 降低版本即可
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;include:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-   os: ubuntu-latest
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#a6e22e&quot;&gt;+   os: ubuntu-18.04
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;h3 id=&quot;heading-5.2&quot;&gt;Bad CPU type in executable&lt;/h3&gt;
&lt;p&gt;
    这是由于最新的 &lt;b&gt;macos-latest&lt;/b&gt; 仅包括arm64，不再包括x86_64导致，如果需要使用x86_64，请指定版本 &lt;b&gt;macos-13&lt;/b&gt;
&lt;/p&gt;</content>
        <category term="Tech"></category>
    </entry>
    <entry xml:lang="zh">
      <title>Docker笔记之registry清理</title>
      <link href="https://honmaple.me/posts/2021/08/Docker笔记之registry清理/" rel="alternate"></link>
      <published>Mon, 23 Aug 2021 17:14:46 +0000</published>
      <updated>Thu, 02 Sep 2021 00:58:43 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2021/08/Docker笔记之registry清理/" type="text/html"/>
      <id>https://honmaple.me/posts/2021/08/Docker笔记之registry清理/</id>
      <summary type="html">
&lt;blockquote&gt;
&lt;p&gt;
尝试了几种方式, 算是找到了一个比较方便的清理docker registry的方式
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;heading-1&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;
  两年前分给了 &lt;b&gt;docker registry&lt;/b&gt; 1T的磁盘，虽然有预感磁盘空间会被用完, 没想过能够坚持这么久。
  而且期间一直想把 &lt;b&gt;registry&lt;/b&gt; 迁移到 &lt;b&gt;harbor&lt;/b&gt;，也能对不同账户的权限进行分配和限制，但几百G的磁盘占用也不好迁移，所以一直被耽搁(迁移方式都准备好了 &lt;a href=&quot;https://blog.k8s.li/docker-registry-to-harbor.html&quot;&gt;https://blog.k8s.li/docker-registry-to-harbor.html&lt;/a&gt;)
&lt;/p&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;清理&lt;/h2&gt;
&lt;h3 id=&quot;heading-2.1&quot;&gt;列出所有镜像&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;registry garbage-collect --dry-run /etc...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;blockquote&gt;
&lt;p&gt;
尝试了几种方式, 算是找到了一个比较方便的清理docker registry的方式
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;heading-1&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;
  两年前分给了 &lt;b&gt;docker registry&lt;/b&gt; 1T的磁盘，虽然有预感磁盘空间会被用完, 没想过能够坚持这么久。
  而且期间一直想把 &lt;b&gt;registry&lt;/b&gt; 迁移到 &lt;b&gt;harbor&lt;/b&gt;，也能对不同账户的权限进行分配和限制，但几百G的磁盘占用也不好迁移，所以一直被耽搁(迁移方式都准备好了 &lt;a href=&quot;https://blog.k8s.li/docker-registry-to-harbor.html&quot;&gt;https://blog.k8s.li/docker-registry-to-harbor.html&lt;/a&gt;)
&lt;/p&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;清理&lt;/h2&gt;
&lt;h3 id=&quot;heading-2.1&quot;&gt;列出所有镜像&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;registry garbage-collect --dry-run /etc/docker/registry/config.yml &amp;gt;&amp;gt; res.txt&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.2&quot;&gt;找出分层(push次数)最多的几个镜像&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;cat res.txt | awk -F : &amp;#39;{print $1}&amp;#39; | sort | uniq -c | sort -rn -k1 | head -10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;  25871 image1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;  25649 image2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;  16815 image3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.3&quot;&gt;删除某个镜像的untagged的数据&lt;/h3&gt;
&lt;p&gt;
   注意 &lt;code&gt;-u&lt;/code&gt; 参数, 仅删除 &lt;b&gt;untagger&lt;/b&gt; 的数据
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
 dry-run
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;REGISTRY_DATA_DIR&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;registry&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;registry&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;v2 python delete_docker_registry_image&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;py &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;image image1 &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;u &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;dry&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;run&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 实际删除(&lt;b&gt;需要先暂停registry&lt;/b&gt;)
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;REGISTRY_DATA_DIR&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;registry&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;docker&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;registry&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;v2 python delete_docker_registry_image&lt;span style=&quot;color:#f92672&quot;&gt;.&lt;/span&gt;py &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;image image1 &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;u&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 查看磁盘占用(&lt;b&gt;恢复registry&lt;/b&gt;)
&lt;/p&gt;

&lt;p&gt;
      发现磁盘占用的大头还是这些 &lt;b&gt;untagged&lt;/b&gt; 的数据， 仅仅处理了几个分层数量最多的镜像，一下子多了几百G的空间
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;heading-3&quot;&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://zhuanlan.zhihu.com/p/48009377&quot;&gt;https://zhuanlan.zhihu.com/p/48009377&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://github.com/burnettk/delete-docker-registry-image&quot;&gt;https://github.com/burnettk/delete-docker-registry-image&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech"></category>
    </entry>
    <entry xml:lang="zh">
      <title>K8S笔记之ingress增加验证</title>
      <link href="https://honmaple.me/posts/2021/07/K8S笔记之ingress增加验证/" rel="alternate"></link>
      <published>Tue, 13 Jul 2021 14:13:38 +0000</published>
      <updated>Thu, 02 Sep 2021 00:59:05 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2021/07/K8S笔记之ingress增加验证/" type="text/html"/>
      <id>https://honmaple.me/posts/2021/07/K8S笔记之ingress增加验证/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;创建账户密码&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 生成密码
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;PASSWORD&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;$(&lt;/span&gt;base64 &amp;lt; /dev/urandom | head -c8&lt;span style=&quot;color:#66d9ef&quot;&gt;)&lt;/span&gt;; echo &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;$PASSWORD&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 生成hash值
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run --rm --entrypoint htpasswd httpd:2 -Bbn username password &amp;gt;&amp;gt; auth&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;修改ingress&lt;/h2&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/auth...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;创建账户密码&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 生成密码
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;PASSWORD&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;$(&lt;/span&gt;base64 &amp;lt; /dev/urandom | head -c8&lt;span style=&quot;color:#66d9ef&quot;&gt;)&lt;/span&gt;; echo &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;$PASSWORD&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 生成hash值
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run --rm --entrypoint htpasswd httpd:2 -Bbn username password &amp;gt;&amp;gt; auth&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;修改ingress&lt;/h2&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/auth-realm=&amp;#39;Authentication Required &amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/auth-type=basic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/auth-secret=basic-auth
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/auth-secret-type=auth-map&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-3&quot;&gt;Authorization请求头传递到后端server&lt;/h2&gt;
&lt;p&gt;
   现有一个 &lt;b&gt;django server&lt;/b&gt; 需要根据不同用户名配置不同的权限, &lt;b&gt;django&lt;/b&gt; 可以通过 &lt;code&gt;request.META.get(&quot;HTTP_AUTHORIZATION&quot;)&lt;/code&gt; 获取&lt;b&gt;basic auth&lt;/b&gt; 时的用户信息, 但默认 &lt;b&gt;Authorization&lt;/b&gt; 请求头无法直接传递到后端, 所以需要配置
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;nginx.ingress.kubernetes.io/configuration-snippet: |
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;    proxy_set_header Authorization $http_authorization;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;    proxy_pass_header Authorization;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
   参考资料:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://serverfault.com/questions/977426/how-to-keep-authentication-header-with-redirect-using-nginx-ingress-annotations&quot;&gt;https://serverfault.com/questions/977426/how-to-keep-authentication-header-with-redirect-using-nginx-ingress-annotations&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://github.com/kubernetes/dashboard/issues/5105&quot;&gt;https://github.com/kubernetes/dashboard/issues/5105&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-4&quot;&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/&quot;&gt;https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#authentication&quot;&gt;https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#authentication&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech"></category>
    </entry>
    <entry xml:lang="zh">
      <title>GNS3笔记</title>
      <link href="https://honmaple.me/posts/2021/05/GNS3笔记/" rel="alternate"></link>
      <published>Tue, 11 May 2021 14:48:06 +0000</published>
      <updated>Wed, 24 Nov 2021 17:05:14 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2021/05/GNS3笔记/" type="text/html"/>
      <id>https://honmaple.me/posts/2021/05/GNS3笔记/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;GNS3 VM导入&lt;/h2&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virt-install  --name gns3  --memory &lt;span style=&quot;color:#ae81ff&quot;&gt;8192&lt;/span&gt;  --vcpus &lt;span style=&quot;color:#ae81ff&quot;&gt;4&lt;/span&gt;  --disk /home/kvm/GNS3/GNS3VM-disk001.qcow2  --disk /home/kvm/GNS3/GNS3VM-disk002.qcow2  --import --virt-type kvm --os-type linux --os-variant ubuntu18.04...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;GNS3 VM导入&lt;/h2&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virt-install  --name gns3  --memory &lt;span style=&quot;color:#ae81ff&quot;&gt;8192&lt;/span&gt;  --vcpus &lt;span style=&quot;color:#ae81ff&quot;&gt;4&lt;/span&gt;  --disk /home/kvm/GNS3/GNS3VM-disk001.qcow2  --disk /home/kvm/GNS3/GNS3VM-disk002.qcow2  --import --virt-type kvm --os-type linux --os-variant ubuntu18.04 --network default --graphics vnc,listen&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;0.0.0.0,password&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;foobar,port&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;5910&lt;/span&gt; --noautoconsole --hvm&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;禁用广告与数据采集&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 禁用错误报告
&lt;/p&gt;

&lt;p&gt;
     找到 &lt;code&gt;~/.config/GNS3/2.2/gns3_server.conf&lt;/code&gt;, 在 &lt;code&gt;[Server]&lt;/code&gt; 块中添加
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[Server]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;report_errors = False&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 禁用google分析
&lt;/p&gt;

&lt;p&gt;
     找到 &lt;code&gt;/usr/local/lib/python3.8/dist-packages/gns3server/static/web-ui/index.html&lt;/code&gt; , 注释google分析相关代码
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;&amp;lt;!--&lt;/span&gt;&lt;span style=&quot;color:#75715e&quot;&gt; &amp;lt;script async=&amp;#34;&amp;#34; src=&amp;#34;https://www.googletagmanager.com/gtag/js?id=G&lt;/span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;5D6FZL9923&amp;#34;&amp;gt;&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;span style=&quot;color:#f92672&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;  window.&lt;span style=&quot;color:#a6e22e&quot;&gt;dataLayer&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt; window.&lt;span style=&quot;color:#a6e22e&quot;&gt;dataLayer&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;||&lt;/span&gt; [];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#66d9ef&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color:#a6e22e&quot;&gt;gtag&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#a6e22e&quot;&gt;dataLayer&lt;/span&gt;.&lt;span style=&quot;color:#a6e22e&quot;&gt;push&lt;/span&gt;(&lt;span style=&quot;color:#a6e22e&quot;&gt;arguments&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#a6e22e&quot;&gt;gtag&lt;/span&gt;(&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;js&amp;#39;&lt;/span&gt;, &lt;span style=&quot;color:#66d9ef&quot;&gt;new&lt;/span&gt; Date());
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#75715e&quot;&gt;// gtag(&amp;#39;config&amp;#39;, &amp;#39;G-5D6FZL9923&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;&amp;lt;/&lt;span style=&quot;color:#f92672&quot;&gt;script&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 禁用错误跟踪
&lt;/p&gt;

&lt;p&gt;
     找到 &lt;code&gt;/usr/local/lib/python3.8/dist-packages/gns3server/static/web-ui&lt;/code&gt; 目录下的 &lt;code&gt;main.xxxx.js&lt;/code&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;sudo sed -i &amp;#39;s%https://d8be3a98530f49eb90968ff396db326c@o19455.ingest.sentry.io/842726%%g&amp;#39; main.2f0314a517dded67879c.js&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 禁用广告
&lt;/p&gt;

&lt;p&gt;
     同样找到 &lt;code&gt;/usr/local/lib/python3.8/dist-packages/gns3server/static/web-ui&lt;/code&gt; 目录下的 &lt;code&gt;main.xxxx.js&lt;/code&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;sudo sed -i &amp;#39;s%https://servedbyadbutler.com/adserve/;ID=165803;size=0x0;setID=371476;type=json;%%g&amp;#39; main.2f0314a517dded67879c.js&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
   &lt;b&gt;然后重启服务即可 &lt;code&gt;sudo systemctl restart gns3&lt;/code&gt;&lt;/b&gt;
&lt;/p&gt;

&lt;h2 id=&quot;heading-3&quot;&gt;启用basic auth&lt;/h2&gt;
&lt;p&gt;
     找到 &lt;code&gt;~/.config/GNS3/2.2/gns3_server.conf&lt;/code&gt;, 在 &lt;code&gt;[Server]&lt;/code&gt; 块中添加
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[Server]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;auth = True
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;user = gns3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;password = gns3&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</content>
        <category term="Tech"></category>
    </entry>
    <entry xml:lang="zh">
      <title>K8S笔记之集群管理</title>
      <link href="https://honmaple.me/posts/2020/09/K8S笔记之集群管理/" rel="alternate"></link>
      <published>Wed, 02 Sep 2020 14:34:20 +0000</published>
      <updated>Thu, 29 Aug 2024 10:32:15 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2020/09/K8S笔记之集群管理/" type="text/html"/>
      <id>https://honmaple.me/posts/2020/09/K8S笔记之集群管理/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;pod&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;查看对外开放pod和port&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get svc --all-namespaces | grep -v ClusterIP&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get svc --all-namespaces -o go-template=&#39;{{range .items}}{{ $save := . }}{{range.spec.ports}}{{if .nodePort}}{{$save.metadata.namespace}}{{&quot;/&quot;}}{{$save.metadata.name...&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;pod&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;查看对外开放pod和port&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get svc --all-namespaces | grep -v ClusterIP&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get svc --all-namespaces -o go-template=&amp;#39;{{range .items}}{{ $save := . }}{{range.spec.ports}}{{if .nodePort}}{{$save.metadata.namespace}}{{&amp;#34;/&amp;#34;}}{{$save.metadata.name}}{{&amp;#34; - &amp;#34;}}{{.name}}{{&amp;#34;: &amp;#34;}}{{.nodePort}}{{&amp;#34;\n&amp;#34;}}{{end}}{{end}}{{end}}&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.2&quot;&gt;清理所有状态为Failed或者Evicted的pod&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;kubectl get pods --all-namespaces -o go-template&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{{range .items}} \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;{{if eq .status.phase &amp;#34;Failed&amp;#34;}} {{if eq .status.reason &amp;#34;Evicted&amp;#34;}} {{.metadata.name}}{{&amp;#34; &amp;#34;}} {{.metadata.namespace}}{{&amp;#34;\n&amp;#34;}} \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;{{end}} \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;{{end}} \
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;{{end}}&amp;#39;&lt;/span&gt; | &lt;span style=&quot;color:#66d9ef&quot;&gt;while&lt;/span&gt; read epod namespace; &lt;span style=&quot;color:#66d9ef&quot;&gt;do&lt;/span&gt; kubectl -n $namespace delete pod $epod; &lt;span style=&quot;color:#66d9ef&quot;&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.3&quot;&gt;查看pod id&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get pods --all-namespaces -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid,NODE:.spec.nodeName&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.4&quot;&gt;查看pod所在节点&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get pod -o wide --all-namespaces
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;# 或者
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.5&quot;&gt;孤立pod解决&lt;/h3&gt;
&lt;p&gt;
    找到所有运行中的pod id
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get pods --all-namespaces -o custom-columns=PodUID:.metadata.uid | tail -n +2 &amp;gt; pods.txt&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;ls &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;d1 &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;kubelet&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;pods&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;|&lt;/span&gt; xargs &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;I &lt;span style=&quot;color:#f92672&quot;&gt;%&lt;/span&gt; bash &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;c &lt;span style=&quot;color:#e6db74&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;[ ! -f &lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;/etc-hosts ] &amp;amp;&amp;amp; echo &lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;cat &lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;log&lt;span style=&quot;color:#f92672&quot;&gt;/&lt;/span&gt;messages&lt;span style=&quot;color:#f92672&quot;&gt;|&lt;/span&gt;grep &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;i &lt;span style=&quot;color:#e6db74&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;Orphaned pod&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;|&lt;/span&gt;awk &lt;span style=&quot;color:#f92672&quot;&gt;-&lt;/span&gt;F &lt;span style=&quot;color:#e6db74&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#e6db74&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;{print $2}&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;|&lt;/span&gt;uniq&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get pods --all-namespaces -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid | egrep -f /tmp/pods.txt&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;节点&lt;/h2&gt;
&lt;h3 id=&quot;heading-2.1&quot;&gt;禁止节点调度&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl cordon master   # 禁止节点调度&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubeclt uncordon master # 允许节点调度&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.2&quot;&gt;Label添加删除和修改&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 查看
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl get node --show-labels&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 添加
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl label nodes &amp;lt;node-name&amp;gt; &amp;lt;label-key&amp;gt;=&amp;lt;label-value&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 删除
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl label nodes &amp;lt;node-name&amp;gt; &amp;lt;label-key&amp;gt;-&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 修改
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl label nodes &amp;lt;node-name&amp;gt; &amp;lt;label-key&amp;gt;=&amp;lt;label-value&amp;gt; --overwrite&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech/Linux"></category>
    </entry>
    <entry xml:lang="zh">
      <title>K8S笔记之私有仓库搭建</title>
      <link href="https://honmaple.me/posts/2020/02/K8S笔记之私有仓库搭建/" rel="alternate"></link>
      <published>Thu, 20 Feb 2020 23:19:43 +0000</published>
      <updated>Sun, 09 Aug 2020 21:54:17 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2020/02/K8S笔记之私有仓库搭建/" type="text/html"/>
      <id>https://honmaple.me/posts/2020/02/K8S笔记之私有仓库搭建/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;创建PV&lt;/h2&gt;
&lt;p&gt;
  关于PV的创建参考 《K8S笔记之持久化存储》
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;apiVersion&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;kind&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;PersistentVolumeClaim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;docker-claim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;accessModes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#ae81ff&quot;&gt;ReadWriteOnce&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;resources&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;requests&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;storage&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;80Gi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;storageClassName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;local-volume&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;搭建仓库&lt;/h2&gt;
&lt;p&gt;
  Docker 私有化仓库的搭建可参考官方文档, 并且将相关的配置转化为K8S所需要的yaml文件...&lt;/p&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;创建PV&lt;/h2&gt;
&lt;p&gt;
  关于PV的创建参考 《K8S笔记之持久化存储》
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;apiVersion&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;kind&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;PersistentVolumeClaim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;docker-claim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;accessModes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#ae81ff&quot;&gt;ReadWriteOnce&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;resources&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;requests&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;storage&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;80Gi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;storageClassName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;local-volume&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;搭建仓库&lt;/h2&gt;
&lt;p&gt;
  Docker 私有化仓库的搭建可参考官方文档, 并且将相关的配置转化为K8S所需要的yaml文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;apiVersion&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;kind&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ReplicationController&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;namespace&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;labels&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;k8s-app&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;replicas&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;selector&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;k8s-app&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;template&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;labels&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;k8s-app&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;containers&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;image&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry:2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;containerPort&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;5000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_HTTP_ADDR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: :&lt;span style=&quot;color:#ae81ff&quot;&gt;5000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;26&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;27&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/var/lib/registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;28&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_HTTP_TLS_CERTIFICATE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;29&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/certs/tls.crt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;30&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_HTTP_TLS_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;31&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/certs/tls.key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;32&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;33&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;htpasswd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;34&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH_HTPASSWD_REALM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;35&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Registry Realm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;36&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH_HTPASSWD_PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;37&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/auth/htpasswd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;38&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;volumeMounts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;39&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-storage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;40&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;mountPath&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/var/lib/registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;41&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;subPath&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;42&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-secret&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;43&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;mountPath&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/certs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;44&lt;/span&gt;&lt;span&gt;            - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-passwd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;45&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;mountPath&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/auth&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;46&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;47&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-storage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;48&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;persistentVolumeClaim&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;49&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;claimName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;docker-claim&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;50&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-secret&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;51&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;secret&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;52&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;secretName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-tls-secret&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;53&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-passwd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;54&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;secret&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;55&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;secretName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-passwd-secret&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
  &lt;b&gt;需要注意的几个点&lt;/b&gt;
&lt;/p&gt;

&lt;h3 id=&quot;heading-2.1&quot;&gt;命名空间&lt;/h3&gt;
&lt;p&gt;
   这里我指定的命名空间为 &lt;b&gt;default&lt;/b&gt;， 包括前面的PV以及后续所创建的 service, secret, ingress等服务也需要指定相同的命名空间
&lt;/p&gt;

&lt;h3 id=&quot;heading-2.2&quot;&gt;https验证&lt;/h3&gt;
&lt;p&gt;
   https验证所需要的ca文件命名为tls.crt, tls.key是为了后面可以方便的配置 ingress
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 创建ca证书与私钥
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/tls.key -x509 -days 365 -out certs/tls.crt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;Generating a &lt;span style=&quot;color:#ae81ff&quot;&gt;4096&lt;/span&gt; bit RSA private key
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;.......................................................................................................++
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;................................................++
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;writing new private key to &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;certs/tls.key&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;-----
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;You are about to be asked to enter information that will be incorporated
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;into your certificate request.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;What you are about to enter is what is called a Distinguished Name or a DN.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;There are quite a few fields but you can leave some blank
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;For some fields there will be a default value,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;If you enter &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;.&amp;#39;&lt;/span&gt;, the field will be left blank.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;-----
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;Country Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;2&lt;/span&gt; letter code&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;XX&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:CN
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;State or Province Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;full name&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:sichuan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;Locality Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;eg, city&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;Default City&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:chengdu
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;Organization Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;eg, company&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;Default Company Ltd&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;Organizational Unit Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;eg, section&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:software
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;Common Name &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;eg, your name or your server&lt;span style=&quot;color:#960050;background-color:#1e0010&quot;&gt;&amp;#39;&lt;/span&gt;s hostname&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:registry.k8s.cloud
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;Email Address &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;:registry@xxx.com&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
     需要注意的是 &lt;b&gt;Common Name&lt;/b&gt; 字段, 后续配置 &lt;b&gt;ingress&lt;/b&gt; 的 &lt;b&gt;host&lt;/b&gt; 要与该字段保持一致
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 创建 &lt;b&gt;secret&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl --namespace&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;default create secret tls registry-tls-secret --cert ./certs/tls.crt --key ./certs/tls.key&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
     该密钥创建后会生成 &lt;b&gt;data&lt;/b&gt; 下的两个文件，一个 &lt;b&gt;tls.crt&lt;/b&gt;, 一个 &lt;b&gt;tls.key&lt;/b&gt;, 这两个名字总是固定的，与执行命令中的文件名无关
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;heading-2.3&quot;&gt;用户名密码验证&lt;/h3&gt;
&lt;p&gt;
   Docker仓库默认未开启账号验证，需要添加三个环境变量
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;- &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;htpasswd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;- &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH_HTPASSWD_REALM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Registry Realm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;- &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;REGISTRY_AUTH_HTPASSWD_PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/auth/htpasswd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   其中 &lt;code&gt;/auth/htpasswd&lt;/code&gt; 将会被挂载在 &lt;b&gt;secret&lt;/b&gt; 上
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 生成密码文件
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker run --entrypoint htpasswd registry:2 -Bbn username password &amp;gt; certs/htpasswd&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
     或者
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;yum install httpd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;htpasswd -Bbn user passwd &amp;gt; certs/passwd&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 创建 &lt;b&gt;secret&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl --namespace&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;default create secret generic registry-passwd-secret --from-file&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;htpasswd&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;./certs/passwd&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-3&quot;&gt;创建service&lt;/h2&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;apiVersion&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;v1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;kind&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;namespace&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;labels&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;k8s-app&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;kubernetes.io/name&lt;/span&gt;: &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;KubeRegistry&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;selector&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;k8s-app&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;port&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;5000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;protocol&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;TCP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
  注: 我也不知道 &lt;b&gt;label&lt;/b&gt; 中的 &lt;code&gt;kubernetes.io/name&lt;/code&gt; 有什么作用
&lt;/p&gt;

&lt;h2 id=&quot;heading-4&quot;&gt;创建ingress&lt;/h2&gt;
&lt;p&gt;
  由于该私有仓库需要对外服务, 我采用 &lt;b&gt;ingress&lt;/b&gt; 方式
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;kind&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;Ingress&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;apiVersion&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;extensions/v1beta1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;metadata&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ingress.registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;namespace&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;annotations&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;nginx.ingress.kubernetes.io/backend-protocol&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;HTTPS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;nginx.ingress.kubernetes.io/ingress.class&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;nginx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;nginx.ingress.kubernetes.io/rewrite-target&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;    &lt;span style=&quot;color:#f92672&quot;&gt;nginx.ingress.kubernetes.io/ssl-passthrough&lt;/span&gt;: &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;spec&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;tls&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;hosts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#ae81ff&quot;&gt;registry.k8s.cloud&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;secretName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry-tls-secret&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;rules&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;host&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry.k8s.cloud&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;http&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;        &lt;span style=&quot;color:#f92672&quot;&gt;paths&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;          - &lt;span style=&quot;color:#f92672&quot;&gt;path&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;            &lt;span style=&quot;color:#f92672&quot;&gt;backend&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;serviceName&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;registry&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;              &lt;span style=&quot;color:#f92672&quot;&gt;servicePort&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;5000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 命名空间必须与之前保持一致
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;host&lt;/b&gt; 必须与之前创建证书时的 &lt;b&gt;CN&lt;/b&gt; 保持一致
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-5&quot;&gt;测试Docker仓库&lt;/h2&gt;

&lt;h3 id=&quot;heading-5.1&quot;&gt;修改host&lt;/h3&gt;
&lt;p&gt;
   由于 &lt;b&gt;registry.k8s.cloud&lt;/b&gt; 并不是一个真实的域名，所以采用修改 &lt;code&gt;/etc/hosts&lt;/code&gt; 方式进行测试和访问
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;echo &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#34;10.8.235.202 registry.k8s.cloud&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/hosts&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-5.2&quot;&gt;更新Docker证书&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;mkdir -p /etc/docker/certs.d/registry.k8s.cloud
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;cp certs/tls.crt /etc/docker/certs.d/registry.k8s.cloud/ca.crt&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
   如果是不同机器，复制 &lt;code&gt;certs/tls.crt&lt;/code&gt; 的内容到另一台机器上即可
&lt;/p&gt;

&lt;p&gt;
   注：&lt;b&gt;不需要重启Docker&lt;/b&gt;
&lt;/p&gt;

&lt;h3 id=&quot;heading-5.3&quot;&gt;登陆仓库&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker login registry.k8s.cloud&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   输入之前创建时用的&lt;b&gt;用户名&lt;/b&gt;，&lt;b&gt;密码&lt;/b&gt;, 一般就可以登陆成功
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# docker login registry.k8s.cloud&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Username: xxxx
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;Password: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;Configure a credential helper to remove this warning. See
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;https://docs.docker.com/engine/reference/commandline/login/#credentials-store
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;Login Succeeded&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-5.4&quot;&gt;测试上传与下载&lt;/h3&gt;
&lt;p&gt;
   准备任意 &lt;b&gt;Dockerfile&lt;/b&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 构建本地镜像
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker build -t registry.k8s.cloud/mytest .&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 上传镜像
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# docker push registry.k8s.cloud/mytest:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;The push refers to repository &lt;span style=&quot;color:#f92672&quot;&gt;[&lt;/span&gt;registry.k8s.cloud/mytest&lt;span style=&quot;color:#f92672&quot;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;1357220cb89: Layer already exists
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;a965e1c532c: Pushed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;beaee123df5: Layer already exists
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;2568a15e513: Layer already exists
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;badc4d6e828: Pushed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;3c730fdba93: Pushed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;9d9e1e59db0: Pushed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;9dfa0a0da3b: Pushed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;latest: digest: sha256:c20c32ba413e6555159aa0722a866a576481fe4a177116c4919xxxxxxx2a5a size: &lt;span style=&quot;color:#ae81ff&quot;&gt;1995&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 拉取镜像
     当镜像上传成功，可在另一台机器上测试下载
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# docker pull registry.k8s.cloud/mytest:latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;latest: Pulling from mytest
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;605cebd3f31: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;d08402297b9: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;68c3b3bcbd0: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;9ee925a87cc: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;ebb13422b6b: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;59c8302ac13: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;7149c344f10: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;7d8abdd4c32: Pull complete
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;Digest: sha256:c20c32ba1e6555159aa0722a866a576481fe4a177116419ade0708652a5a
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;Status: Downloaded newer image &lt;span style=&quot;color:#66d9ef&quot;&gt;for&lt;/span&gt; registry.k8s.cloud/mytest:latest
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;registry.k8s.cloud/mytest:latest&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-6&quot;&gt;FAQ&lt;/h2&gt;

&lt;h3 id=&quot;heading-6.1&quot;&gt;x509: certificate is valid for ingress.local, not registry.k8s.cloud&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;Error response from daemon: Get https://registry.k8s.cloud/v2/: x509: certificate is valid for ingress.local, not registry.k8s.cloud&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
   这一般是 &lt;b&gt;ingress tls&lt;/b&gt; 的配置问题, 比如创建 &lt;b&gt;secret&lt;/b&gt; 时采用 &lt;b&gt;generic&lt;/b&gt; 而不是 &lt;b&gt;tls&lt;/b&gt;
&lt;/p&gt;

&lt;h3 id=&quot;heading-6.2&quot;&gt;x509: certificate signed by unknown authority&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;Error response from daemon: Get https://registry.k8s.cloud/v2/: x509: certificate signed by unknown authority&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
   这是未更新Docker证书导致的, 需要更新
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;/etc/docker/certs.d/registry.k8s.cloud/ca.crt&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-6.3&quot;&gt;413 Request Entity Too Large&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;error parsing HTTP 413 response body: invalid character &amp;#39;&amp;lt;&amp;#39; looking for beginning of value: &amp;#34;&amp;lt;html&amp;gt;\r\n&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;413 Request Entity Too Large&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;\r\n&amp;lt;body&amp;gt;\r\n&amp;lt;center&amp;gt;&amp;lt;h1&amp;gt;413 Request Entity Too Large&amp;lt;/h1&amp;gt;&amp;lt;/center&amp;gt;\r\n&amp;lt;hr&amp;gt;&amp;lt;center&amp;gt;nginx/1.17.7&amp;lt;/center&amp;gt;\r\n&amp;lt;/body&amp;gt;\r\n&amp;lt;/html&amp;gt;\r\n&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   当上传镜像时遇到413, 需要更新 &lt;b&gt;ingress&lt;/b&gt; 配置
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;nginx.ingress.kubernetes.io/proxy-body-size&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;1024m&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-7&quot;&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://docs.docker.com/registry/deploying/&quot;&gt;https://docs.docker.com/registry/deploying/&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;http://www.huamo.online/2017/06/07/Kubernetes%E6%90%AD%E5%BB%BATLS%E7%A7%81%E6%9C%89docker%E4%BB%93%E5%BA%93/&quot;&gt;http://www.huamo.online/2017/06/07/Kubernetes%E6%90%AD%E5%BB%BATLS%E7%A7%81%E6%9C%89docker%E4%BB%93%E5%BA%93/&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech"></category>
    </entry>
    <entry xml:lang="zh">
      <title>K8S笔记之常见问题</title>
      <link href="https://honmaple.me/posts/2020/01/K8S笔记之常见问题/" rel="alternate"></link>
      <published>Fri, 10 Jan 2020 13:26:01 +0000</published>
      <updated>Thu, 29 Aug 2024 10:41:09 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2020/01/K8S笔记之常见问题/" type="text/html"/>
      <id>https://honmaple.me/posts/2020/01/K8S笔记之常见问题/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;修改dashboard显示语言为中文&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 修改浏览器语言:
     dashboard的显示语言会根据浏览器的语言自动切换，但需要注意的是chrome需要切换语言为 &lt;b&gt;中文&lt;/b&gt; 而不是 &lt;b&gt;中文（简体）&lt;/b&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 设置环境变量(推荐):
     修改dashboard的&lt;b&gt;Deployments&lt;/b&gt; yaml文件, 添加环境变量
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;containers&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#ae81ff&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;containerPort&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;8443&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#ae81ff&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ACCEPT_LANGUAGE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;zh&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;获取token&lt;/h2&gt;
&lt;p&gt;
   获取名为 &lt;b&gt;admin&lt;/b&gt; 的账号...&lt;/p&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;修改dashboard显示语言为中文&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 修改浏览器语言:
     dashboard的显示语言会根据浏览器的语言自动切换，但需要注意的是chrome需要切换语言为 &lt;b&gt;中文&lt;/b&gt; 而不是 &lt;b&gt;中文（简体）&lt;/b&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 设置环境变量(推荐):
     修改dashboard的&lt;b&gt;Deployments&lt;/b&gt; yaml文件, 添加环境变量
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;containers&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#ae81ff&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#f92672&quot;&gt;ports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;    - &lt;span style=&quot;color:#f92672&quot;&gt;containerPort&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;8443&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#ae81ff&quot;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;      &lt;span style=&quot;color:#f92672&quot;&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;        - &lt;span style=&quot;color:#f92672&quot;&gt;name&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;ACCEPT_LANGUAGE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;          &lt;span style=&quot;color:#f92672&quot;&gt;value&lt;/span&gt;: &lt;span style=&quot;color:#ae81ff&quot;&gt;zh&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-2&quot;&gt;获取token&lt;/h2&gt;
&lt;p&gt;
   获取名为 &lt;b&gt;admin&lt;/b&gt; 的账号 &lt;b&gt;token&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl -n kube-system describe secret &lt;span style=&quot;color:#66d9ef&quot;&gt;$(&lt;/span&gt;kubectl -n kube-system get secret | grep admin | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;kubectl -n kubernetes-dashboard describe secret &lt;span style=&quot;color:#66d9ef&quot;&gt;$(&lt;/span&gt;kubectl -n kubernetes-dashboard get secret | grep admin | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-3&quot;&gt;修改token过期时间&lt;/h2&gt;
&lt;p&gt;
   参考: &lt;a href=&quot;https://blog.csdn.net/u013201439/article/details/80930285&quot;&gt;https://blog.csdn.net/u013201439/article/details/80930285&lt;/a&gt;
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#f92672&quot;&gt;args&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;  &lt;span style=&quot;color:#ae81ff&quot;&gt;....&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;  - --&lt;span style=&quot;color:#ae81ff&quot;&gt;token-ttl=86400&lt;/span&gt; &lt;span style=&quot;color:#75715e&quot;&gt;# 一天&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 重新创建dashboard
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl apply -f dashboard.yaml&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 获取token
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubectl -n kube-system describe secret &lt;span style=&quot;color:#66d9ef&quot;&gt;$(&lt;/span&gt;kubectl -n kube-system get secret | grep admin | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#66d9ef&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;heading-4&quot;&gt;自签名证书&lt;/h2&gt;
&lt;h3 id=&quot;heading-4.1&quot;&gt;多域名&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://blog.csdn.net/qq_21359467/article/details/102731032&quot;&gt;https://blog.csdn.net/qq_21359467/article/details/102731032&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://security.stackexchange.com/questions/74345/provide-subjectaltname-to-openssl-directly-on-the-command-line/91556#91556&quot;&gt;https://security.stackexchange.com/questions/74345/provide-subjectaltname-to-openssl-directly-on-the-command-line/91556#91556&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;cp /etc/pki/tls/openssl.conf ./&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;openssl req -new -sha256 -key xxx.com.key -out xxx.com.csr -extension v3_req -config openssl.cnf&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
    注意: &lt;code&gt;-extension v3_req&lt;/code&gt; 参数
&lt;/p&gt;

&lt;h2 id=&quot;heading-5&quot;&gt;nginx服务DNS解析&lt;/h2&gt;
&lt;p&gt;
   &lt;a href=&quot;https://stackoverflow.com/questions/51090684/nginx-wont-resolve-hostname-in-k8s&quot;&gt;https://stackoverflow.com/questions/51090684/nginx-wont-resolve-hostname-in-k8s&lt;/a&gt; &lt;a href=&quot;https://github.com/openresty/openresty/issues/298&quot;&gt;https://github.com/openresty/openresty/issues/298&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
   resolver相关
   &lt;a href=&quot;https://blog.csdn.net/cjfeii/article/details/77987004&quot;&gt;https://blog.csdn.net/cjfeii/article/details/77987004&lt;/a&gt;
&lt;/p&gt;

&lt;h2 id=&quot;heading-6&quot;&gt;K8S证书过期问题&lt;/h2&gt;
&lt;p&gt;
   周末服务不能访问,
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[root@k8s-master ~]# kubectl get nodes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Unable to connect to the server: x509: certificate has expired or is not yet valid&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   首先想到是证书过期了，
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[root@k8s-master pki]# ls
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;apiserver.crt              apiserver.key                 ca.crt  front-proxy-ca.crt      front-proxy-client.key
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;apiserver-etcd-client.crt  apiserver-kubelet-client.crt  ca.key  front-proxy-ca.key      sa.key
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;apiserver-etcd-client.key  apiserver-kubelet-client.key  etcd    front-proxy-client.crt  sa.pub&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;[root@k8s-master pki]# openssl x509 -in apiserver.crt -text
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;Certificate:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;    Data:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;        Version: 3 (0x2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;        Serial Number: 3850906911950301514 (0x35712b6ef5e4e94a)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;    Signature Algorithm: sha256WithRSAEncryption
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;        Issuer: CN=kubernetes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;        Validity
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;            Not Before: Mar 20 09:24:02 2020 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;            Not After : Mar 20 09:24:02 2021 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;        Subject: CN=kube-apiserver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;        Subject Public Key Info:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;            Public Key Algorithm: rsaEncryption&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   查找了一下
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;https://github.com/kubernetes/kubeadm/issues/581#issuecomment-596097725&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   可以直接通过
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;[root@k8s-master backup]# kubeadm alpha certs check-expiration
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;[check-expiration] Reading configuration from the cluster...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;[check-expiration] FYI: You can look at this config file with &amp;#39;kubectl -n kube-system get cm kubeadm-config -oyaml&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;[check-expiration] Error reading configuration from the Cluster. Falling back to default configuration
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;W0321 15:42:19.113957   11330 validation.go:28] Cannot validate kube-proxy config - no validator is available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;W0321 15:42:19.114213   11330 validation.go:28] Cannot validate kubelet config - no validator is available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;admin.conf                 Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;                               no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;apiserver                  Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       ca                      no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;apiserver-etcd-client      Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       etcd-ca                 no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;apiserver-kubelet-client   Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       ca                      no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;controller-manager.conf    Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;                               no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;etcd-healthcheck-client    Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       etcd-ca                 no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;etcd-peer                  Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       etcd-ca                 no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;etcd-server                Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       etcd-ca                 no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;front-proxy-client         Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;       front-proxy-ca          no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;scheduler.conf             Mar 20, 2021 09:24 UTC   &amp;lt;invalid&amp;gt;                               no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;ca                      Mar 18, 2030 09:24 UTC   8y              no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;etcd-ca                 Mar 18, 2030 09:24 UTC   8y              no
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;front-proxy-ca          Mar 18, 2030 09:24 UTC   8y              no&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   备份
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;cp -r /etc/kubernetes /backup/&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   更新
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;kubeadm alpha certs renew all&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   继续查看
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[root@k8s-master ~]# kubectl get nodes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;error: You must be logged in to the server (Unauthorized)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;[root@k8s-master backup]# cp /etc/kubernetes/admin.conf ~/.kube/config
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;cp：是否覆盖&amp;#34;/root/.kube/config&amp;#34;？ y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;[root@k8s-master backup]# kubectl get nodes
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;NAME          STATUS   ROLES    AGE    VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;k8s-master    Ready    master   365d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;k8s-node-01   Ready    &amp;lt;none&amp;gt;   365d   v1.17.0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;k8s-node-02   Ready    &amp;lt;none&amp;gt;   365d   v1.17.0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;k8s-node-03   Ready    &amp;lt;none&amp;gt;   335d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;k8s-node-04   Ready    &amp;lt;none&amp;gt;   335d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;k8s-node-05   Ready    &amp;lt;none&amp;gt;   365d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;k8s-node-06   Ready    &amp;lt;none&amp;gt;   365d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;k8s-node-07   Ready    &amp;lt;none&amp;gt;   363d   v1.17.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;k8s-node-08   Ready    &amp;lt;none&amp;gt;   363d   v1.17.4&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   登录rancher发现点击重新部署后无反应
&lt;/p&gt;

&lt;p&gt;
   重启 &lt;b&gt;apiserver&lt;/b&gt;、&lt;b&gt;scheduler&lt;/b&gt;、&lt;b&gt;controller&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;docker restart &lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;docker ps | grep kube-apiserver  | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{ print $1 }&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;docker restart &lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;docker ps | grep kube-scheduler  | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{ print $1 }&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;docker restart &lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;docker ps | grep kube-controller  | awk &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;{ print $1 }&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#e6db74&quot;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;systemctl restart kubelet&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</content>
        <category term="Tech/Linux"></category>
    </entry>
    <entry xml:lang="zh">
      <title>KVM笔记之磁盘扩容</title>
      <link href="https://honmaple.me/posts/2020/01/KVM笔记之磁盘扩容/" rel="alternate"></link>
      <published>Thu, 09 Jan 2020 11:38:09 +0000</published>
      <updated>Thu, 17 Dec 2020 10:26:32 +0000</updated>
      <author>
        <name>honmaple</name>
      </author>
      <link rel="alternate" href="https://honmaple.me/posts/2020/01/KVM笔记之磁盘扩容/" type="text/html"/>
      <id>https://honmaple.me/posts/2020/01/KVM笔记之磁盘扩容/</id>
      <summary type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;磁盘扩容&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;关闭KVM虚拟机&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virsh shutdown vm-ubuntu-04&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.2&quot;&gt;扩容磁盘&lt;/h3&gt;
&lt;h4 id=&quot;heading-1.2.1&quot;&gt;查看磁盘位置&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# virsh domblklist vm-ubuntu-04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Target     Source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;vda        /home/kvm/images/ubuntu-04.qcow2&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h4 id=&quot;heading-1.2.2&quot;&gt;查看磁盘信息&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img info /home/kvm/images...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</summary>
      <content type="html">
&lt;h2 id=&quot;heading-1&quot;&gt;磁盘扩容&lt;/h2&gt;
&lt;h3 id=&quot;heading-1.1&quot;&gt;关闭KVM虚拟机&lt;/h3&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virsh shutdown vm-ubuntu-04&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-1.2&quot;&gt;扩容磁盘&lt;/h3&gt;
&lt;h4 id=&quot;heading-1.2.1&quot;&gt;查看磁盘位置&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# virsh domblklist vm-ubuntu-04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Target     Source
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;vda        /home/kvm/images/ubuntu-04.qcow2&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h4 id=&quot;heading-1.2.2&quot;&gt;查看磁盘信息&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img info /home/kvm/images/ubuntu-04.qcow2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;image: /home/kvm/images/ubuntu-04.qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;file format: qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;virtual size: 2.0G &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;2147483648&lt;/span&gt; bytes&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;disk size: 1.7G
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;cluster_size: &lt;span style=&quot;color:#ae81ff&quot;&gt;65536&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;Format specific information:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;compat: 0.10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;9&lt;/span&gt;&lt;span&gt;refcount bits: &lt;span style=&quot;color:#ae81ff&quot;&gt;16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    可以看出现在虚拟机磁盘大小为 &lt;b&gt;2G&lt;/b&gt;
&lt;/p&gt;

&lt;h4 id=&quot;heading-1.2.3&quot;&gt;扩容磁盘大小&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img resize /home/kvm/images/ubuntu-04.qcow2 +28G&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Image resized.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img info /home/kvm/images/ubuntu-04.qcow2 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;image: /home/kvm/images/ubuntu-04.qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;file format: qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;virtual size: 30G &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;32212254720&lt;/span&gt; bytes&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;disk size: 1.7G
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;cluster_size: &lt;span style=&quot;color:#ae81ff&quot;&gt;65536&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;7&lt;/span&gt;&lt;span&gt;Format specific information:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;8&lt;/span&gt;&lt;span&gt;compat: 0.10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;9&lt;/span&gt;&lt;span&gt;refcount bits: &lt;span style=&quot;color:#ae81ff&quot;&gt;16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    现在磁盘大小已增加到 &lt;b&gt;30G&lt;/b&gt;
&lt;/p&gt;

&lt;h3 id=&quot;heading-1.3&quot;&gt;扩容虚拟机分区&lt;/h3&gt;
&lt;h4 id=&quot;heading-1.3.1&quot;&gt;启动虚拟机&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virsh start vm-ubuntu-04&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h4 id=&quot;heading-1.3.2&quot;&gt;查看磁盘大小和格式&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-04:~# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;loop0    7:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; 88.5M  &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt; loop /snap/core/7270
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;vda    252:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   30G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; disk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;├─vda1 252:1    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;    1M  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;└─vda2 252:2    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;    2G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part /&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    现在跟分区只分配了 &lt;b&gt;2G&lt;/b&gt; 的大小，而当前 &lt;b&gt;vda&lt;/b&gt; 磁盘总量为 &lt;b&gt;30G&lt;/b&gt;
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-04:~# df -T
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;Filesystem     Type     1K-blocks    Used Available Use% Mounted on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;udev           devtmpfs   &lt;span style=&quot;color:#ae81ff&quot;&gt;4053076&lt;/span&gt;       &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   &lt;span style=&quot;color:#ae81ff&quot;&gt;4053076&lt;/span&gt;   0% /dev
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;tmpfs          tmpfs       &lt;span style=&quot;color:#ae81ff&quot;&gt;816784&lt;/span&gt;     &lt;span style=&quot;color:#ae81ff&quot;&gt;936&lt;/span&gt;    &lt;span style=&quot;color:#ae81ff&quot;&gt;815848&lt;/span&gt;   1% /run
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;/dev/vda2      ext4       &lt;span style=&quot;color:#ae81ff&quot;&gt;2028368&lt;/span&gt; &lt;span style=&quot;color:#ae81ff&quot;&gt;1634136&lt;/span&gt;    &lt;span style=&quot;color:#ae81ff&quot;&gt;273144&lt;/span&gt;  86% /
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;tmpfs          tmpfs      &lt;span style=&quot;color:#ae81ff&quot;&gt;4083912&lt;/span&gt;       &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   &lt;span style=&quot;color:#ae81ff&quot;&gt;4083912&lt;/span&gt;   0% /dev/shm
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;tmpfs          tmpfs         &lt;span style=&quot;color:#ae81ff&quot;&gt;5120&lt;/span&gt;       &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;      &lt;span style=&quot;color:#ae81ff&quot;&gt;5120&lt;/span&gt;   0% /run/lock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;tmpfs          tmpfs      &lt;span style=&quot;color:#ae81ff&quot;&gt;4083912&lt;/span&gt;       &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   &lt;span style=&quot;color:#ae81ff&quot;&gt;4083912&lt;/span&gt;   0% /sys/fs/cgroup
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;/dev/loop0     squashfs     &lt;span style=&quot;color:#ae81ff&quot;&gt;90624&lt;/span&gt;   &lt;span style=&quot;color:#ae81ff&quot;&gt;90624&lt;/span&gt;         &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; 100% /snap/core/7270
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;tmpfs          tmpfs       &lt;span style=&quot;color:#ae81ff&quot;&gt;816780&lt;/span&gt;       &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;    &lt;span style=&quot;color:#ae81ff&quot;&gt;816780&lt;/span&gt;   0% /run/user/0&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    &lt;b&gt;注意&lt;/b&gt; :不同格式的文件系统扩容磁盘命令 &lt;b&gt;有所不同&lt;/b&gt;，比如我的根分区格式为 &lt;b&gt;ext4&lt;/b&gt;, 以下将以 &lt;b&gt;ext4&lt;/b&gt; 为例
&lt;/p&gt;

&lt;h4 id=&quot;heading-1.3.3&quot;&gt;扩容磁盘&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 安装 &lt;b&gt;cloud-guest-utils&lt;/b&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;apt -y install cloud-guest-utils&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 扩容磁盘
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-base:~# growpart /dev/vda &lt;span style=&quot;color:#ae81ff&quot;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;CHANGED: partition&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;2&lt;/span&gt; start&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;4096&lt;/span&gt; old: size&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;4188160&lt;/span&gt; end&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;4192256&lt;/span&gt; new: size&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;62910431,end&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;62914527&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
      &lt;b&gt;2&lt;/b&gt; 为跟分区所在磁盘
&lt;/p&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-base:~# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;3&lt;/span&gt;&lt;span&gt;loop0    7:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; 88.5M  &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt; loop /snap/core/7270
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;4&lt;/span&gt;&lt;span&gt;vda    252:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   30G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; disk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;5&lt;/span&gt;&lt;span&gt;├─vda1 252:1    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;    1M  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;6&lt;/span&gt;&lt;span&gt;└─vda2 252:2    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   30G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part /&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 更新且格式化分区
      &lt;b&gt;resize2fs&lt;/b&gt; 扩容 &lt;b&gt;ext4&lt;/b&gt; 文件系统, 其它可参考 &lt;a href=&quot;https://computingforgeeks.com/extending-root-filesystem-using-lvm-linux/&quot;&gt;https://computingforgeeks.com/extending-root-filesystem-using-lvm-linux/&lt;/a&gt;
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-base:~# resize2fs /dev/vda2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;resize2fs 1.44.1 &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;24-Mar-2018&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;Filesystem at /dev/vda2 is mounted on /; on-line resizing required
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;old_desc_blocks &lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt; 1, new_desc_blocks &lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ae81ff&quot;&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;The filesystem on /dev/vda2 is now &lt;span style=&quot;color:#ae81ff&quot;&gt;7863803&lt;/span&gt; &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;4k&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt; blocks long.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-base:~# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;loop0    7:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; 88.5M  &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt; loop /snap/core/7270
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;vda    252:0    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   30G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; disk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;├─vda1 252:1    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;    1M  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;└─vda2 252:2    &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt;   30G  &lt;span style=&quot;color:#ae81ff&quot;&gt;0&lt;/span&gt; part /
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;root@vm-ubuntu-base:~# df -hT | grep /dev/vda
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;/dev/vda2      ext4       30G  1.6G   27G   6% /&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;heading-1.3.4&quot;&gt;&lt;span class=&quot;todo&quot;&gt;DONE&lt;/span&gt;LVM磁盘扩容&lt;/h4&gt;
&lt;p&gt;
    CLOSED: [2020-12-17 四 10:26]
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 State &quot;DONE&quot;       from              [2020-12-17 四 10:26]
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;sda                         8:0    0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;sdb                         8:16   0  3.5T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;├─sdb1                      8:17   0  512M  0 part /boot/efi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;├─sdb2                      8:18   0    1G  0 part /boot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;└─sdb3                      8:19   0  3.5T  0 part 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  └─ubuntu--vg-ubuntu--lv 253:0    0  200G  0 lvm  /
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;sdc                         8:32   0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;sdd                         8:48   0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;sr0                        11:0    1 1024M  0 rom  &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# vgdisplay 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  --- Volume group ---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  VG Name               ubuntu-vg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  System ID             
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  Format                lvm2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  Metadata Areas        1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  Metadata Sequence No  2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;  VG Access             read/write
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  VG Status             resizable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;  MAX LV                0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  Cur LV                1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;  Open LV               1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;  Max PV                0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;  Cur PV                1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;  Act PV                1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;  VG Size               3.49 TiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;  PE Size               4.00 MiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;  Total PE              915322
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;  Alloc PE / Size       51200 / 200.00 GiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;  Free  PE / Size       864122 / &amp;lt;3.30 TiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;  VG UUID               EAgRRa-u0VB-0MjL-gnk5-KDCC-YlYw-vAMwOS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# lvdisplay 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  --- Logical volume ---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;  LV Path                /dev/ubuntu-vg/ubuntu-lv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  LV Name                ubuntu-lv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  VG Name                ubuntu-vg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  LV UUID                PrxjnN-ELNU-peoA-JH6E-BFle-KclP-Gt07U4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  LV Write Access        read/write
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;  LV Creation host, time ubuntu-server, 2020-12-03 15:13:07 +0000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  LV Status              available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;  # open                 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  LV Size                200.00 GiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;  Current LE             51200
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;  Segments               1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;  Allocation             inherit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;  Read ahead sectors     auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;  - currently set to     256
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;  Block device           253:0&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# lvcreate -n ubuntu-lv-home --extents +100%FREE  ubuntu-vg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;  Logical volume &amp;#34;ubuntu-lv-home&amp;#34; created.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# lvdisplay 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  /dev/sde: open failed: No medium found
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  --- Logical volume ---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;  LV Path                /dev/ubuntu-vg/ubuntu-lv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;  LV Name                ubuntu-lv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;  VG Name                ubuntu-vg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;  LV UUID                PrxjnN-ELNU-peoA-JH6E-BFle-KclP-Gt07U4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;  LV Write Access        read/write
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;  LV Creation host, time ubuntu-server, 2020-12-03 15:13:07 +0000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;  LV Status              available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;  # open                 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;  LV Size                200.00 GiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;  Current LE             51200
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;  Segments               1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;  Allocation             inherit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;  Read ahead sectors     auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;  - currently set to     256
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;  Block device           253:0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;26&lt;/span&gt;&lt;span&gt;  --- Logical volume ---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;27&lt;/span&gt;&lt;span&gt;  LV Path                /dev/ubuntu-vg/ubuntu-lv-home
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;28&lt;/span&gt;&lt;span&gt;  LV Name                ubuntu-lv-home
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;29&lt;/span&gt;&lt;span&gt;  VG Name                ubuntu-vg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;30&lt;/span&gt;&lt;span&gt;  LV UUID                4dHuSb-yGla-pcdp-0tfg-hnAL-j0xZ-h2aiNr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;31&lt;/span&gt;&lt;span&gt;  LV Write Access        read/write
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;32&lt;/span&gt;&lt;span&gt;  LV Creation host, time jsl-ml, 2020-12-04 09:37:56 +0000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;33&lt;/span&gt;&lt;span&gt;  LV Status              available
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;34&lt;/span&gt;&lt;span&gt;  # open                 0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;35&lt;/span&gt;&lt;span&gt;  LV Size                &amp;lt;3.30 TiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;36&lt;/span&gt;&lt;span&gt;  Current LE             864122
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;37&lt;/span&gt;&lt;span&gt;  Segments               1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;38&lt;/span&gt;&lt;span&gt;  Allocation             inherit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;39&lt;/span&gt;&lt;span&gt;  Read ahead sectors     auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;40&lt;/span&gt;&lt;span&gt;  - currently set to     256
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;41&lt;/span&gt;&lt;span&gt;  Block device           253:1&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;NAME                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;sda                               8:0    0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;sdb                               8:16   0  3.5T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;├─sdb1                            8:17   0  512M  0 part /boot/efi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;├─sdb2                            8:18   0    1G  0 part /boot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;└─sdb3                            8:19   0  3.5T  0 part 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  ├─ubuntu--vg-ubuntu--lv       253:0    0  200G  0 lvm  /
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  └─ubuntu--vg-ubuntu--lv--home 253:1    0  3.3T  0 lvm  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;sdc                               8:32   0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;sdd                               8:48   0 14.6T  0 disk 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;sr0                              11:0    1 1024M  0 rom  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# mkfs.ext4 /dev/ubuntu-vg/ubuntu-lv-home&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;root@jsl-ml:~# mount /dev/ubuntu-vg/ubuntu-lv-home /home/data&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-2&quot;&gt;磁盘挂载&lt;/h2&gt;
&lt;h3 id=&quot;heading-2.1&quot;&gt;创建磁盘&lt;/h3&gt;
&lt;p&gt;
   创建一块大小为 &lt;b&gt;100G&lt;/b&gt;，格式为 &lt;b&gt;qcow2&lt;/b&gt; 的磁盘
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img create -f qcow2 ubuntu-04-disk.qcow2 100G&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;Formatting &lt;span style=&quot;color:#e6db74&quot;&gt;&amp;#39;ubuntu-04-disk.qcow2&amp;#39;&lt;/span&gt;, fmt&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;qcow2 size&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;107374182400&lt;/span&gt; cluster_size&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;65536&lt;/span&gt; lazy_refcounts&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;off refcount_bits&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   查看磁盘大小
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color:#75715e&quot;&gt;# qemu-img info ubuntu-04-disk.qcow2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;image: ubuntu-04-disk.qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;file format: qcow2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;virtual size: 100G &lt;span style=&quot;color:#f92672&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ae81ff&quot;&gt;107374182400&lt;/span&gt; bytes&lt;span style=&quot;color:#f92672&quot;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;disk size: 196K
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;cluster_size: &lt;span style=&quot;color:#ae81ff&quot;&gt;65536&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;Format specific information:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;compat: 1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;lazy refcounts: false
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;refcount bits: &lt;span style=&quot;color:#ae81ff&quot;&gt;16&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;corrupt: false&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.2&quot;&gt;挂载磁盘&lt;/h3&gt;
&lt;h4 id=&quot;heading-2.2.1&quot;&gt;挂载命令&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virsh attach-disk vm-ubuntu-04 /home/kvm/images/ubuntu-04-disk.qcow2 --driver qemu --subdriver qcow2 vdb --persistent&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
    注: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;vm-ubuntu-04&lt;/b&gt; 为需要扩展的虚拟机名称
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;/home/kvm/images/ubuntu-04-disk.qcow2&lt;/b&gt; 为刚创建好的扩展磁盘
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;b&gt;vdb&lt;/b&gt; 为新扩展磁盘的名称
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;heading-2.2.2&quot;&gt;卸载命令&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;virsh detach-disk vm-ubuntu-04 /home/kvm/images/ubuntu-04-disk.qcow2 --persistent&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-2.3&quot;&gt;格式化磁盘&lt;/h3&gt;
&lt;p&gt;
   &lt;b&gt;虚拟机内执行&lt;/b&gt;
&lt;/p&gt;

&lt;h4 id=&quot;heading-2.3.1&quot;&gt;格式化分区&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;[root@vm-ubuntu-04 ~]# fdisk /dev/vdb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;欢迎使用 fdisk (util-linux 2.23.2)。
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;更改将停留在内存中，直到您决定将更改写入磁盘。
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;使用写入命令前请三思。
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;Device does not contain a recognized partition table
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;使用磁盘标识符 0xd01c1c86 创建新的 DOS 磁盘标签。
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;命令(输入 m 获取帮助)：n
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;Partition type:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;   p   primary (0 primary, 0 extended, 4 free)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;   e   extended
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;Select (default p): p
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;分区号 (1-4，默认 1)：
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;起始 扇区 (2048-209715199，默认为 2048)：
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;将使用默认值 2048
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;Last 扇区, +扇区 or +size{K,M,G} (2048-209715199，默认为 209715199)：
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;将使用默认值 209715199
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;分区 1 已设置为 Linux 类型，大小设为 100 GiB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;命令(输入 m 获取帮助)：w
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;The partition table has been altered!
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;Calling ioctl() to re-read partition table.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;26&lt;/span&gt;&lt;span&gt;正在同步磁盘&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h4 id=&quot;heading-2.3.2&quot;&gt;格式化文件系统&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;[root@vm-ubuntu-04 ~]# lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;[root@vm-ubuntu-04 ~]# mkfs.ext4 /dev/vdb1&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h4 id=&quot;heading-2.3.3&quot;&gt;挂载磁盘&lt;/h4&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;mkdir /home/data
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;mount /dev/vdb1 /home/data&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-3&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;heading-3.1&quot;&gt;unexpected output in sfdisk --version &lt;/h3&gt;
&lt;p&gt;
   在执行 &lt;code&gt;growpart /dev/vda 1&lt;/code&gt; 时报错
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;unexpected output in sfdisk --version [sfdisk，来自 util-linux 2.23.2]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   解决方案
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;LANG&lt;span style=&quot;color:#f92672&quot;&gt;=&lt;/span&gt;en_US.UTF-8 growpart /dev/vda &lt;span style=&quot;color:#ae81ff&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h3 id=&quot;heading-3.2&quot;&gt;DOS partition table format cannot be used on drives for volumes larger than 2T&lt;/h3&gt;
&lt;p&gt;
   在使用 &lt;code&gt;fdisk /dev/sdd&lt;/code&gt; 时, 当&lt;code&gt;/dev/sdd&lt;/code&gt;的大小超过2T, 会有警告
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;Device does not contain a recognized partition table.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;2&lt;/span&gt;&lt;span&gt;The size of this disk is 14.6 TiB (16000900661248 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   解决方案
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 1&lt;/span&gt;&lt;span&gt;# gdisk /dev/sdd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 2&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 3&lt;/span&gt;&lt;span&gt;GPT fdisk (gdisk) version 1.0.5
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 4&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 5&lt;/span&gt;&lt;span&gt;Partition table scan:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 6&lt;/span&gt;&lt;span&gt;  MBR: not present
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 7&lt;/span&gt;&lt;span&gt;  BSD: not present
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 8&lt;/span&gt;&lt;span&gt;  APM: not present
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt; 9&lt;/span&gt;&lt;span&gt;  GPT: not present
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;10&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;11&lt;/span&gt;&lt;span&gt;Creating new GPT entries in memory.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;12&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;13&lt;/span&gt;&lt;span&gt;Command (? for help): o
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;14&lt;/span&gt;&lt;span&gt;This option deletes all partitions and creates a new protective MBR.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;15&lt;/span&gt;&lt;span&gt;Proceed? (Y/N): Y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;16&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;17&lt;/span&gt;&lt;span&gt;Command (? for help): n
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;18&lt;/span&gt;&lt;span&gt;Partition number (1-128, default 1): 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;19&lt;/span&gt;&lt;span&gt;First sector (34-31251759070, default = 2048) or {+-}size{KMGTP}: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;20&lt;/span&gt;&lt;span&gt;Last sector (2048-31251759070, default = 31251759070) or {+-}size{KMGTP}: 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;21&lt;/span&gt;&lt;span&gt;Current type is 8300 (Linux filesystem)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;22&lt;/span&gt;&lt;span&gt;Hex code or GUID (L to show codes, Enter = 8300): 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;23&lt;/span&gt;&lt;span&gt;Changed type of partition to &amp;#39;Linux filesystem&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;24&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;25&lt;/span&gt;&lt;span&gt;Command (? for help): w
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;26&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;27&lt;/span&gt;&lt;span&gt;Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;28&lt;/span&gt;&lt;span&gt;PARTITIONS!!
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;29&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;30&lt;/span&gt;&lt;span&gt;Do you want to proceed? (Y/N): Y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;31&lt;/span&gt;&lt;span&gt;OK; writing new GUID partition table (GPT) to /dev/sdd.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;32&lt;/span&gt;&lt;span&gt;The operation has completed successfully.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
   然后格式化即可
&lt;/p&gt;
&lt;pre style=&quot;color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none;&quot;&gt;&lt;span style=&quot;display:flex;&quot;&gt;&lt;span style=&quot;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&quot;&gt;1&lt;/span&gt;&lt;span&gt;mkfs.ext4 /dev/sdd1&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;h2 id=&quot;heading-4&quot;&gt;参考链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://computingforgeeks.com/how-to-extend-increase-kvm-virtual-machine-disk-size/&quot;&gt;https://computingforgeeks.com/how-to-extend-increase-kvm-virtual-machine-disk-size/&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
 &lt;a href=&quot;https://computingforgeeks.com/resize-ext-and-xfs-root-partition-without-lvm/&quot;&gt;https://computingforgeeks.com/resize-ext-and-xfs-root-partition-without-lvm/&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
        <category term="Tech"></category>
    </entry>
</feed>
