自己跑一台机器
你租一台服务器,把它切成容器,再转卖出去 —— 这一页讲的就是这件事, 从一台空机器,一直带到「一份容器已经在别人手里」。 自己的硬件走法完全一样;租来的是更常见的情况,所以这一页按它来写。
这件事的另一面 —— 你的租户看到什么、要做什么 —— 是快速上手。读一遍那一页, 是最快看懂自己在卖什么的办法。
1. 什么必须从外面进得来
机器是自己往面板拨号并保持连着的,所以面板完全不需要进得来。但你的租户需要:
三个数字,其中一个已经被你自己的 sshd 占着。按这个顺序来:
先放开备用端口,再挪 sshd。 顺序反了,你就把自己锁在自己的服务器外面了, 而租来的机器没有一根救命的控制台线。
你要放开的是云厂商的防火墙 —— 安全组、网络规则,各家叫法不同 —— 新开的机器往往只放行 22。这里没有什么要转发,也不经过你自己的路由器: 机器的公网地址本来就是它自己的。
挪 sshd 用机器页面上的「端口」卡片,别自己开编辑器。 在一条马上要被改掉的连接上, 去编辑服务器上最吓人的那个文件,是丢机器的经典方式。卡片会写好端口、 重启之前先校验配置,并且不动你正在敲字的这个会话。它也分得清 OpenSSH 的两种形态 —— Debian 13 和较新的 Ubuntu 上,socket 是 systemd 持有的,sshd_config 里的 Port 根本不起作用,不少人就是栽在这里丢了远程登录。
22 也不是非交出去不可:网关可以待在别的端口上,租户自己加 -p,同一张卡片也能这么设。 但一个要记端口号的租户,就是会来找你的租户。
其它要求很短:
容器要用到的那些配套软件,机器每次启动都会自己装,装得怎么样,面板上那台机器的页面会告诉你。
2. 没有什么要打开的
这里没有单独的「主机方账号」,也不用申请。任何账号都能接一台机器,同一个登录还能同时持有别人 给你的容器:
所以这一步整个内容就是:登录,打开 机器。
3. 把机器接进来
机器 → 添加一台机器,两步。
两条命令里你面板自己的地址都是页面填好的,复制就行,不用手打。如果你的面板有多个地址能访问, 页面会问那台机器该用哪一个,并且先从你的浏览器测一遍每个地址的快慢 —— 你走的路不一定就是 机器走的路。
你应该看到它自己出现,就在第二条命令跑完的几秒钟内:
两件事现在知道比以后知道好:
4. 设置逐项看
在那台机器的页面上:
两个数字就是这门生意的全部
定价之前先读懂这两行。CPU 份额是下限保证、不是上限封顶 —— 所以同一份容器在夜里空闲时跑分能快 一倍,而「这份到底多快」的诚实答案是忙时那个。内存没有这种好脾气:到线上,那份容器里最大的 进程会被杀掉。
一台机器能塞几份,你不用猜。塞不下的时候机器会拒绝创建,并且用一句话说清原因;页面上那行话会 告诉你风往哪边吹:
页面上其余的部分,各一行
有一项值得早点打开,在高级里:不装它的话,容器里的 free 和 top 显示的是整台机器的内存 而不是它自己的。限额两种情况下都完全按售出的执行 —— 变的只是数字 —— 但租户看的就是那些数字, 然后就来找你。
5. 创建一份容器
给谁用是决定后面走向的那个选择:
选一个机器上已经有的镜像,创建就不下载任何东西、只要几秒 —— 机器上存的那一份,会被所有用它建 出来的容器共用。
镜像那一行有三个来源。来自市场就是上面说的共用那份。自己的镜像地址是你自己推到某个 registry 上的镜像,只要机器访问得到:机器会在建容器的时候把它下载下来、解包进这个容器自己的 盘,下载的量算这个容器的流量 —— 所以得给它一个磁盘大小。来自这台主机是你自己拷进机器镜像 目录的文件,一点流量都不花。
你应该看到:
只显示一次就是只显示一次:面板不留着它。丢了就在那份容器的页面上重设。
6. 交出去
把它交出去会给你一个链接和一串码,发哪个都行:
在对方领取之前,什么都不会变;一串码过期了,随时可以从那份容器的页面上再生成一串。他一领取, shell 登录立刻被重写 —— 你手上那份就用不了了,这正是它该有的样子。
然后把快速上手发给他。那一页正好从你这串分享码停下的地方开始。
7. 长期跑下去
最后两条不一样,所以:要退掉一台机器,先把上面的容器删掉才是干净的做法。只解绑的话,那些容器 会继续跑在面板已经不认识的硬件上。
机器上软件的更新从它的页面上驱动;账号要更大的额度 —— 比套餐允许的容器数更多 —— 是发消息谈, 不是在线下单,具体看套餐页面。
8. 出问题的时候
| 你看到的 | 通常是什么 |
|---|---|
| 机器显示离线 | 它连不上面板。看机器是否开着、能不能往外联网;它不需要任何对外开放的端口。 |
| 创建被拒绝 | 机器在内存或 CPU 上放不下这个规格,并且会说清是哪一项。卖小一点,或者等负载降下来。 |
| 从市场创建失败,再建同名的又说名字已被占用 | 面板等下载系统等到超时就不等了,而机器其实把容器建完了,面板没记下来。先在镜像里把系统缓存到机器上,再选「来自这台主机」创建,那样不下载任何东西。机器上那份多出来的用 hqnode rm <名字> 清掉。 |
| 租户登不进去 | 他那份容器停了、到期了或因流量被暂停了 —— 也可能是云厂商的防火墙没放行 22。 |
| 租户的域名解析到了但没人回应 | 要么他容器里面没程序在听,要么云厂商的防火墙没把 80、443 放进这台机器。 |
| 所有租户的证书都申请不下来 | 机器上负责加密的那个门被挪离了常用端口。请求会在联系签发方之前就被拒掉。 |
| 容器里看到的是整台机器的内存 | 高级里那一项没装。已经在跑的容器要重启之后才会看到自己的数字。 |
| 刚接进来就缺软件 | 每次启动它都会自己装;那台机器的页面会说哪一步失败了,以及装不上时该手动跑什么。 |