如何使用 Tailscale 实现 K3s 集群多云组网

内网穿透 篇一:通过 Tailscale 异地组网 实现远程访问局域网 Tailscale 是一款基于 WireGuard 的异地组网工具,它可以将不同网络环境的设备组成一个虚拟局域网,使其可以互相访问。连接到 Tailscale 的设备,可以直接使用内网 IP 访问家庭局域网内网设备可以直接使用 Tailscale 分配的 IP 来访问连接到 Tailscale 的设备支持多个局域网互相访问,每个局域网只需一台设备安装 Tailscale ( 每个局域网的网段不能相同 ) 阅读详情

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

d0719088f8facf4439c2b1c9f14213b4.png

k3s集群私有负载均衡的另一种选择tailscale

在阅读此文实践前需要阅读 多云组网部署 k3s 集群的另一种选择Tailscale [1]

要求

  • • 基于tailscale实现k3s集群部署

  • • 有私有负载均衡场景

  • • 已经安装helm

本文默认已经满足上述条件了。

历史选择

在tailscale之前,我是利用MetalLB[2]实现负载均衡的,然后再由tailscale某个节点广播负载均衡路由的。

如今

在tailscale v1.50版本之后,增强了对k8s的支持,Kubernetes operator[3]诞生了,带来了很多新功能:

  • • 代理访问k8s控制平面API

  • • 向k8s集群公开内部服务/k8s集群服务暴露给内部(集群内部和集群外部互通有无,甚至是跨集群互通)

  • • 打通saas云服务

  • • 在 Kubernetes 上部署出口节点和子网路由控制器

其中2、4比较我用的比较多

安装部署

准备工作

  1. 1. 编辑ACL策略[4], 新增如下配置

"tagOwners": {
        "tag:k8s-operator": [],
        "tag:k8s":          ["tag:k8s-operator"],
    },
db538664db8d2592e0ef9f7f5e3af131.png
  1. 1. 创建Oauth客户端[5]备用, 选择Devices读写权限,并绑定tag:k8s-operator

ec8dbee2b70350430176ed0059477ff9.png

点击创建后,会弹出Client IDClient secret 记得留存一下,只会显示一次,后续步骤会使用

安装

  1. 1. 添加到本地 Helm 存储库:https://pkgs.tailscale.com/helmcharts

helm repo add tailscale https://pkgs.tailscale.com/helmcharts
  1. 1. 更新

helm repo update
  1. 1. 安装

helm upgrade \
  --install \
  tailscale-operator \
  tailscale/tailscale-operator \
  --namespace=tailscale \
  --create-namespace \
  --set-string oauth.clientId=<OAauth Client ID> \
  --set-string oauth.clientSecret=<OAuth Client secret> \
  --set-string operatorConfig.image.repository=ccr.ccs.tencentyun.com/k7scn/tailscale-k8s-operator \
  --set-string proxyConfig.image.repository=ccr.ccs.tencentyun.com/k7scn/tailscale \
  --wait

如果你的环境拉取镜像没问题的话,关于镜像部分可以去掉, 目前最新版本是v1.68.1

operatorConfig.image.repository=ccr.ccs.tencentyun.com/k7scn/tailscale-k8s-operator 
ccr.ccs.tencentyun.com/k7scn/tailscale
  1. 1. 验证

等pod状态变成ok之后,可以在tailscale控制台机器里看到tailscale-operator节点,类似

69915fb27185e3ffced610332deac0f5.png

使用

这里主要介绍svc负载均衡模式(即ingress模式)和svc子网路由配置,其他可以参考官网文档

负载均衡

其实这里最好的演示是nginx-ingress-controller, 但是bitnami的nginx-ingress-controller不支持这个参数

默认已经安装好了nginx-ingress-controller,这里我手动配置一下。

apiVersion: v1
kind: Service
metadata:
  annotations:
    meta.helm.sh/release-name: nginx-ingress-controller
    meta.helm.sh/release-namespace: kube-system
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: nginx-ingress-controller
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: nginx-ingress-controller
    app.kubernetes.io/version: 1.10.1
    helm.sh/chart: nginx-ingress-controller-11.3.8
  name: nginx-ingress-controller-lb
  namespace: kube-system
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: nginx-ingress-controller
    app.kubernetes.io/name: nginx-ingress-controller
  sessionAffinity: None
  type: LoadBalancer
  loadBalancerClass: tailscale

手动配置loadBalancerClass值为tailscale

apply生效后,查看kubectl get svc -n kube-system

8efc5d5cc1ec8056468c1ecb27695644.png

查看tailscale命令空间

87d75da5b6e800ad5e7f46fbff80b81e.png

当然除了这种方式外还可以给Service添加注解来支持暴露,更多详细请阅读官方文档Expose a Kubernetes cluster workload to your tailnet (cluster ingress)[6]

子网路由

之前说到,基于tailscale组网,会自动分发pod的路由,使你在任何时间任何地点都可以访问pod的ip,那如何实现访问svc的ip呢?
之前尝试过,在k8s节点分发额外分发svc的ip, 会导致经常性网络问题,不知道大家有没有遇到类似问题?

其他配置也比较简单, 示例10.25.0.0/16"是我的集群svc的cidr

apiVersion: tailscale.com/v1alpha1
kind: Connector
metadata:
  name: ts-svc-cidrs
  namespace: tailscale
spec:
  hostname: ts-svc-cidrs
  subnetRouter:
    advertiseRoutes:
      - "10.25.0.0/16"

等pod状态ok,需要控制台allow一下(记得不是特别清楚是否需要可以确定一下)

c9a0f68198f9865514265ed885b694b5.png

在此之后,你也可以实现任何时间任何地点都可以访问svc的ip了。如图是我本地测试,大家有没有发现不一样的地方😂

ef30da054a3e60d4b6ccb601da986ed2.png

总结

到这里 tailscale 在 k8s 上常用技能点就点完了,如果有其他感兴趣的,可以留言。

引用链接

[1] 多云组网部署 k3s 集群的另一种选择Tailscale : https://ysicing.me/k3s-tailscale
[2] MetalLB: https://github.com/bitnami/charts/tree/main/bitnami/metallb
[3] Kubernetes operator: https://tailscale.com/kb/1236/kubernetes-operator?q=k8s
[4] ACL策略: https://login.tailscale.com/admin/acls/file
[5] Oauth客户端: https://login.tailscale.com/admin/settings/oauth
[6] Expose a Kubernetes cluster workload to your tailnet (cluster ingress): https://tailscale.com/kb/1439/kubernetes-operator-cluster-ingress

本文转载自:「缘生小助手」,原文:https://url.hi-linux.com/IJDG5,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

a745ac56358a299b3a1bf123dea3b5b5.gif

🚀 最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

🌟『极客视界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。

e6cb72749b8028de6fdd464d234459ed.png

你可能还喜欢

点击下方图片即可阅读

3e42d89ecc0ce98da3ed39f4fe6fff6f.png

『IT 人必备工具箱』一份属于你的数字宝藏,期待你的支持!

42f018c3c6d152696e92d50005bbf905.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

5e55007591154ec87433adde14b7333c.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

Tailscale:随时随地远程和使用服务器 即使我的笔记本在公司内网,无法直接连接到家里的台式机,通过Tailscale的relay功能,它们依然能够直接连接,实现畅通无阻的通信。连接成功后即可远程办公了,比如我在家里,我们可以设置公司的电脑的ssh,后续我们就可以连接公司的电脑后对其进行操作,这样就比较的方便,当然,也可以对其进行远程,比如todesk等远程工具,这个可以见仁见智,我觉得都可以,有时候我只使用终端,我觉得都还好。无论身在何处,只需使用分配给设备的IP地址,就能连接到该设备,从而实现远程办公的功能,例如连接到服务器等。 阅读详情

相关推荐

Python实战:逐笔高频因子构建与回测全流程解析

本文详细解析了使用Python构建与回测逐笔高频因子的全流程。从逐笔数据的价值与清洗入手,通过实战代码演示了‘大买成交金额占比’因子的计算逻辑,并重点阐述了因子正交化处理的重要性以剔除风格影响。最后,提供了一个经典的分位数回测框架来验证因子有效性,并分享了数据质量、计算效率与过拟合等核心避坑指南。

grass的博客 348

免费安全的内网穿透实现——Tailscale

Tailscale是一种基于WireGuard的虚拟组网工具,它能实现将安装了 Tailscale 服务的网络设备(即能够上外网的设备),都聚合在一个虚拟的局域网中,让这些设备能够相互访问,所有节点之间都可以实现点对点(P2P)的连接,效率更高,速度更快,成本更低。Tailscale特点:序号特点内容1开箱即用①无需配置防火墙;②没有额外的其他配置;2高安全性/私密性①自动密钥轮换,保障传输数据的安全性②点对点连接;③支持用户自己审查所有端到端的访问记录日志;3

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

基于单片机的室内空气质量监控系统设计

摘 要 I Abstract II 引 言 1 1 控制系统设计 3 1.1 方案选择 3 1.2 系统控制原理 4 2系统硬件设计 5 2.1 单片机的选择与设计 5 2.2 温湿度模块设计 6 2.3 甲醛采集模块设计 8 2.4 显示器模块设计 9 2.5 按键模块设计 10 2.6 报警模块设计 11 2.7 加湿及风扇模块设计 11 3系统软件设计 13 3.1 总流程方案设计 13 3.2 温湿度获取的软件设计 14 3.3 液晶屏LCD1602的软件设计 15 4系统调试 13 4

Q_1928499906的博客 2671

Tailscale 内网穿透原理科普

Tailscale 内网穿透原理科普

2401_89667733的博客 641

Tailscale - Mac、Window、Linux 组网,免费版小公司都够用

一般互联网公司都会私有化的部署一个 vpn,用来访问公司内网资源,比如 openvpn...当然还有更简单的方案也能实现端对端加密,例如 tailscale、headscale、wireguard...这里来说一下 tailscale 组建内网,是我们能通过外网 ip 访问到我们组建的内网设备.Ps:实际上我主要是解决部署多台机器分布式系统下 mysql 和 redis 端口暴露被频繁攻击的问题...

CYK_byte的博客 1万+

Tailscale实现内网穿透、异地组网、远程访问

Tailscale实现内网穿透、异地组网、远程访问

qq_43657722的博客 1万+

跨云与 Homelab 混合集群实战:基于 Tailscale 与 GitOps 实现 K3s Pod 零停机漂移

本文介绍了一种混合云架构实践,通过Tailscale将本地高性能NUC主机接入云端K3s集群,优化资源利用。关键步骤包括:1)利用Tailscale建立加密通道,配置Flannel绑定Tailscale网卡实现跨网通信;2)基于GitOps(ArgoCD)和Helm模板,通过nodeSelector声明式将Java微服务从云端迁移至本地NUC,实现零停机漂移;3)验证显示Kong网关代理延迟仅9ms,Tailscale直连延迟6.45ms,成功将计算密集型负载从资源受限的云端VPS卸载到本地。该方案解决了混

nvd11的专栏 218

跨云缝合怪:记一次多云 K3s 集群组网的血泪史(Flannel NAT 穿透之坑)

多云/混合云场景下折腾 K3s 时,千万不要试图去和各大云厂商复杂的公网 NAT、安全组以及 Flannel 的底层路由死磕。引入 Tailscale 这类 Overlay 网络,将复杂的公网拓扑降维打击成一个纯净的“本地局域网”,才是最优雅、最省头发的终极解决方案。

nvd11的专栏 326

工具篇:TailScale免费实现远程设备互连(无费用方案,亲测,零基础安装),支持手机、Windows或linux系统、NAS

看到 VPN 第一反应应该是“翻墙”,但 VPN 最初应该也是最普遍的用途应该是用来做内网打通, 这也是其名字虚拟私有网络的用意,VPN 让你可以在公开的网络线路上建立一个私有的子网, 然后将所有接入的机器都分配一个私有的内网地址,让他们可以通过 VPN 的私有网络互联。注:在linux服务器上配置COW服务即可实现代理上网了,COW部署在网上很多教程,这里就不多述了,关键是云服务器,我这个免费的三丰云的云服务器地点在北京,如果在海外那就可以实现大家心里想要的那个功能了。IOS设备需有海外ID(某宝有售)

u012417092的博客 2万+

Tailscale 基础教程:Headscale 的部署方法和使用教程

目前从稳定性来看,Tailscale 比其他机遇 WireGuard 的组网工具略胜一筹,基本上不会时不时出现 ping 不通的情况,这取决于 Tailscale 在用户态对 NAT 穿透所做的种种优化,他们还专门写了一篇文章介绍NAT 穿透的原理中文版翻译自国内的 eBPF 大佬赵亚楠,墙裂推荐大家阅读。

云原生实验室 1万+

自建 DERP 中继服务器,从此 Tailscale 畅通无阻

原文链接???? https://fuckcloudnative.io/posts/custom-derp-servers/????上篇文章介绍了如何使用 Headscale 替代 Tailscale 官方的控制服务器,并接入各个平台的客户端。本文将会介绍如何让 Tailscale 使用自定义的 DERP Servers。可能很多人都不知道 DERP 是个啥玩意儿,没关系,我先从中继...

云原生实验室 1万+

Tailscale-搭建异地局域网开源版中文部署指南

Tailscale 开源版中文部署指南

星哲最开心 1万+

TailScale 实现远端访问整段局域网(ZeroTier另一选择)

TailScale 实现远端访问整段局域网(ZeroTier另一选择) 前言: 之前的贴文分享了ZeroTier 实现远端访问局域网 ,最近发现一款软件TailScale感觉设定上更简单一点,仅仅透过帐号登入就可以接入TailScale网络内。 TailScale是以Wireguard的协议加密,所以安全性更高,而且是P2P连线,流量不经伺服器,延迟更低、私密性更高。 目录内容: 安装及加入到TailScale网络 透过设定其中1部TailScale的装置为网关「Subnet Router」,可以

King Tam 的博客 2万+

下一代VPN工具:体验TailScale的简便和高效

在当今数字化时代,保护和管理我们的网络连接变得愈发重要。而TailScale作为一种先进的虚拟专用网络(VPN)工具,正日益受到企业和个人用户的青睐。它的简单易用性和强大的功能使得建立安全的网络连接变得轻而易举。

唯有努力,方可自信! 2万+

Tailscale ACL 访问控制策略完全指南!

❝原文链接????:https://icloudnative.io/posts/tailscale-acls/或者点击左下角的 阅读原文 直接查看原文????大家好,我是米开朗基杨。前面几篇文章给大家给介绍了 Tailscale 和 Headscale,包括 ????Headscale 的安装部署和各个平台客户端的接入,以及如何打通各个节点所在的局域网。同时还介绍了????如何自建私有的 DERP 服务器,并让 Tail...

云原生实验室 3233

tailscale自建headscale和derp中继

有些情况下我们可以确认是当前主机的网络问题导致没法走 P2P 连接, 但是我们又想了解一下当前的网络环境;在需要搭建 DERP Server 的服务器上, 首先安装一个 Tailscale 客户端,这样做的目的是让搭建的 DERP Server 开启客户端认证, 否则你的 DERP Server 可以被任何人白嫖.Tailscale 官方的 DERP 中继服务器全部在境外,在国内的网络环境中不一定能稳定连接,所以有必要建立自己的 DERP 服务器的。客户端开启IP转发,在注册表编辑器中,打开 ,将参数。

IT 2万+

异地组网不再难,利用Tailscale三步轻松解决组网

Tailscale不仅为非会员用户提供了最多100个设备的免费支持,而且支持多种设备操作系统,包括Linux、macOS、iOS、Windows和tvOS,同时也支持Docker部署,显示出极大的灵活性和通用性。替换XXXXXXXXXXXXXXXXXXXX为你的toknen(TS_AUTHKEY=tskey-auth-XXXXXXXXXXXXXXXXXXXX,=后面调整为上面获取到自己的toker,TS_ROUTES=100.100.0.0/24,调整为自己本地的内网地址。

qq_28768477的博客 8797

【记录】Tailscale|部署 Tailscale 到 linux 主机或 Docker 上

本文详细介绍在Linux宿主机(含一键安装、启动认证及出口节点配置)与Docker非特权容器(通过用户态网络模式、创建TUN设备等实现)中部署Tailscale的方法,提及该工具基于WireGuard协议的优势及常用维护命令,同时提示容器部署的临时特性。

shandianchengzi的博客 5818

大模型应用开发 动手做AI Agent 黄佳.pdf

大模型应用开发 动手做AI Agent 黄佳.pdf

上一篇: 免费红包封面福利,第三波来了!多款红包封面上新,给粉丝的独家宠爱
下一篇: DeepSeek-R1 的 15 个官方平替,总有一个适合你!
运维之美
博客等级 码龄21年 2234粉丝 · 150原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值