Tailscale on Kubernetes
Kubernetes 配置
cluster-cidr
:定义了 Pod CIDR。service-cluster-ip-range
:定义了 Service CIDR。cat /etc/kubernetes/manifests/kube-controller-manager.yaml | grep -e "cluster-cidr" -e "service-cluster-ip-range"
repo
git clone <https://github.com/tailscale/tailscale.git>
cd tailscale/docs/k8s
Configure Role-Based Access Control
export SA_NAME=tailscale
export TS_KUBE_SECRET=tailscale-auth
make rbac | kubectl apply -f-
make rbac | kubectl delete -f-
【Subnet router】允许taiscale网络内设备借助子网路由访问Kubernetes的pod和service.
先设置RBAC,再部署子网路由https://tailscale.com/kb/1185/kubernetes#subnet-router
SERVICE_CIDR=10.20.0.0/16
POD_CIDR=10.42.0.0/15
export TS_ROUTES=$SERVICE_CIDR,$POD_CIDR
make subnet-router | kubectl apply -f-
# If not using an auth key, authenticate by grabbing the Login URL here:
kubectl logs subnet-router
# Get the Service IP
INTERNAL_IP="$(kubectl get svc <SVC_NAME> -o=jsonpath='{.spec.clusterIP}')"
# or, the Pod IP
# INTERNAL_IP="$(kubectl get po <POD_NAME> -o=jsonpath='{.status.podIP}')"
INTERNAL_PORT=8080
curl http://$INTERNAL_IP:$INTERNAL_PORT
make subnet-router | kubectl delete -f-