服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- 10月13日的Operator 1.104.1公告与同日仅更新依赖库的容器镜像公告是两个条目,不能只凭镜像同号就认定Operator已升级。
- egress滚动更新等待每个新Pod能路由其全部egress Service,再推进下一个Pod;它没有承诺所有环境零中断,也没给出旧Pod保留多久。
- 共享ACME账户可按Helm全局设置或ProxyGroup注解选择,组级注解优先。现有证书随正常续期逐步迁移,初次签发仍计限额。
- Operator面向所有套餐,但不代表计算、网络及其他服务都免费。先核Kubernetes至少1.23、代理版本兼容、管理权限及具体运行环境。
先确认升级对象,再分清入口和出口
Tailscale在2026年10月13日发布Kubernetes Operator 1.104.1。Operator是替你管理集群内Tailscale代理的控制器;ProxyGroup则把多个代理Pod作为一组运行,默认有两个副本。此次最值得先看的,是出口更新顺序和入口证书续期身份。
egress是集群访问tailnet资源的出口;ingress是把集群工作负载提供给tailnet的入口。tailnet指同一Tailscale私有网络。出口路由就绪与入口TLS证书是两件事,共享ACME账户不会替出口修路由。
先在自己的发布配置里确认Operator、代理与Helm chart的目标版本。官方稳定chart仓库是pkgs.tailscale.com/helmcharts;安装文档说明chart和容器通常在客户端正式发布几天后提供,不要拿10月7日客户端同号版本代替本次Operator公告。
哪些集群和管理员可以继续?
当前文档列出Operator可用于所有套餐,但没有把这次升级解释为全部资源免费。账户服务、集群计算和网络费用仍按实际条件确认;这些来源也没有给出新的逐国开放清单。语言或所在地不会替代账户与集群资格。
Kubernetes最低支持1.23.0。官方推荐Operator与代理使用相同版本;Operator支持最多早四个次版本的代理,不支持比自身更新的代理。先记录现有版本,再确定升级顺序,别先把代理推到控制器不支持的版本。
首次安装需要Kubernetes集群,以及Tailscale管理台Access controls和Trust credentials页面的权限。先确认自己能管理标签与凭据;不使用OAuth时,官方另有工作负载身份联合方案。
OAuth方式要配置tag:k8s-operator对tag:k8s的所有权,并为General/Services、Devices/Core、Keys/Auth Keys授予相应标签范围的写权限。
EKS Fargate支持Ingress和API server proxy,不支持ingress Services、egress Services或Connector;这不是升级版本号就能解除的限制。
Cilium若启用kube-proxy replacement和socket load balancing,发布Tailscale LoadBalancer Service、tailscale.com/expose Service或Connector的Service CIDR时,需要在Pod命名空间内绕过socket负载均衡。
出口滚动更新,现在具体等什么?
1.104.1公告明确:egress ProxyGroup滚动更新时,等待每个新Pod能够路由其全部egress Service的流量,再继续更新下一个Pod。判断单位是这个Pod负责的所有Service,而不是某一条连接偶尔成功。
假设一组出口代理承载数据库和内部API两个Service,这是说明场景,并非实测。新Pod能访问数据库但内部API尚不通时,不能把数据库通了当成全部出口已就绪;应结合自己已有的两条业务路径观察更新进度。
升级前检查ProxyGroup副本数、资源和调度分布;使用ProxyClass时,它要先存在且处于Ready状态。节点维护还需考虑PodDisruptionBudget。官方特别说明:自定义TS_LOCAL_ADDR_PORT会禁用egress优雅故障转移;这项发布也未给出旧Pod保留时长或任意网络条件下零中断的保证。
共享ACME账户在哪里开?
ACME是自动申请和续期TLS证书的协议。此次入口ProxyGroup变更让同一tailnet使用持久共享账户密钥,避免重建代理Pod后丢失原来的续期账户身份。这里保留的是账户身份,不是给所有ACME客户端或所有签发类型无限额度。
要让Operator统一选择共享账户,在Helm values里设置operatorConfig.sharedACMEAccountKey为true。
若只想选择某个ProxyGroup,在该资源metadata.annotations下设置tailscale.com/share-acme-account为字符串true;组级注解不依赖全局开关,并且优先于全局值。
Operator会在首个选择共享账户的ProxyGroup调谐时,在自身命名空间创建tailscale-acme-accounts Secret;账户密钥在代理下一次签发或续期时写入。Secret已经出现,不等于所有证书已经迁移,也不要把它的私密内容复制到排错聊天。
现有证书慢慢迁移,限额不会当场归零
对已有部署启用共享账户时,Operator会重启受影响的Ingress代理Pod,保留原有证书继续使用;不会因此立即重签全部证书。证书在正常续期时逐步迁移,豁免不追溯,完整过渡可能持续一个证书有效期。
不要删除证书来强制迁移:那会立即触发重新签发、消耗限额,已到上限时还可能失败。新主机名的首次签发也没有豁免。Tailscale文档列出每tailnet每周50个新主机名证书、跨集群每周5份重复证书的边界,批量接入前应安排分批。
CA侧还要区分续期方式。Let’s Encrypt的ARI替换订单在满足条件时可豁免所有限额;旧式相同标识符续期仍受部分限额约束。因此不能把Tailscale的共享账户说明扩大为所有续期都无限,也不能靠吊销证书重置额度。
升级后按这三个结果检查
先确认控制器确实加入预期tailnet。官方安装验证是在管理台Machines页查看带tag:k8s-operator标签的Operator节点;再对照自己记录的控制器和代理版本,避免只确认某个客户端已经更新。
接着查看自己已有的ProxyGroup状态和业务可达性,分别覆盖其全部egress Service。副本数、一个Pod的Ready标记或一次成功请求,单独都不足以证明每条业务路径都已完成更新。这里没有进行集群升级、连接或故障转移实测。
最后跟踪现有Ingress证书的正常续期和共享账户状态,保留证书及账户密钥。若已经遇到签发限额,应根据具体错误与CA文档处理,并给正常续期迁移留时间;不要为追求立刻见效而删除Secret或整组代理。
资料来源
常见问题
只更新tailscale容器镜像到1.104.1,可以算Operator升级完成吗?
不能。10月13日的容器镜像条目只写依赖库更新,Operator 1.104.1有单独条目。应核自己的控制器部署、Helm chart与代理实际版本;客户端或某个容器同号不能代替这些检查。
共享的是TLS证书,还是ACME账户?
两者不同。HA入口副本可共享签发后的TLS证书Secret;共享ACME账户保存的是用于签发与续期的账户身份,放在Operator命名空间的tailscale-acme-accounts中。前者让副本使用证书,后者帮助跨Pod重建保持续期身份。
证书已经快到期,但服务没有流量,会立即续期吗?
兼容性文档列出证书有效期90天,通常在有效期约三分之二时续期,但需要服务有活动流量;若已经过期,下次请求会触发续期。这是文档行为,不是本次升级保证证书立刻可用或免受CA限额影响。
卸载再安装Operator,会自动清掉共享账户吗?
文档说明该Secret由Operator创建,helm uninstall会保留它,并有tailscale.com/acme-account-protection finalizer防止误删。丢失账户密钥会失去对应的续期身份连续性;不要把卸载或删除当成解决限额的捷径。