← Cloudflare One / cloudflare-one / tutorials
Použití Cloudflare Tunnels s pluginy pro pověření client-go v Kubernetes
Tento návod vysvětluje, jak k ověřování používat Cloudflare Tunnels s pluginy client-go pro přihlašovací údaje v Kubernetes. Podle těchto kroků můžete bezpečně přistupovat ke svému clusteru Kubernetes přes Cloudflare Tunnel pomocí kubectl nástroj příkazového řádku.
Předpoklady
- Účet Cloudflare
- Klient Cloudflare Tunnel (
cloudflared) nainstalovaný ve vašem počítači - Přístup ke clusteru Kubernetes
kubectlnainstalováno na vašem počítači
1. Nastavení Cloudflare Tunnel
-
Ověřte
cloudflareds vaším účtem Cloudflare:cloudflared tunnel login -
Vytvořte nový tunel:
cloudflared tunnel create k8s-tunnel -
Nakonfigurujte tunel vytvořením konfiguračního souboru s názvem
config.yml:tunnel: <TUNNEL_ID> credentials-file: /path/to/credentials.json ingress: - hostname: k8s.example.com service: tcp://kubernetes.default.svc.cluster.local:443 - service: http_status:404Nahraďte
<TUNNEL_ID>s ID vašeho tunelu a podle potřeby upravte hostname. -
Spusťte tunel:
cloudflared tunnel run k8s-tunnel
2. Nakonfigurujte server Kubernetes API
Ujistěte se, že je váš server Kubernetes API nakonfigurován tak, aby přijímal ověřování od Cloudflare Tunnels. To může zahrnovat nastavení ověřovacího webhooku nebo konfiguraci API serveru tak, aby důvěřoval klientským certifikátům Cloudflare Tunnel.
3. Nastavte client-go credential plugin
-
Vytvořte skript s názvem
cloudflare-k8s-auth.shnásledujícím obsahem:#!/bin/bash echo '{ "apiVersion": "client.authentication.k8s.io/v1beta1", "kind": "ExecCredential", "status": { "token": "'"$(cloudflared access token -app=https://k8s.example.com)"'" } }'Nastavte skript jako spustitelný:
chmod +x cloudflare-k8s-auth.sh -
Aktualizujte
~/.kube/configsoubor pro použití credential pluginu:apiVersion: v1 kind: Config clusters: - cluster: server: https://k8s.example.com name: cloudflare-k8s users: - name: cloudflare-user user: exec: apiVersion: client.authentication.k8s.io/v1beta1 command: /path/to/cloudflare-k8s-auth.sh interactiveMode: Never contexts: - context: cluster: cloudflare-k8s user: cloudflare-user name: cloudflare-k8s-context current-context: cloudflare-k8s-context
4. Použijte kubectl s Cloudflare Tunnel
Nyní můžete použít kubectl příkazy jako obvykle. Modul pověření client-go se o ověření přes Cloudflare Tunnel postará automaticky:
kubectl get podsŘešení potíží
Pokud narazíte na problémy:
- Zajistěte, že
cloudflaredběží a tunel je aktivní - Zkontrolujte, zda váš
~/.kube/configsoubor je správně nakonfigurovaný - Ověřte, že je server Kubernetes API správně nastaven tak, aby přijímal ověřování z Cloudflare Tunnels
- Zkontrolujte protokoly Cloudflare Tunnel, zda neobsahují chybové zprávy
Další informace naleznete v Dokumentace Cloudflare Tunnels a Kubernetes client-go credential plugins documentation ↗.