← Cloudflare One / cloudflare-one / tutorials
Připojení přes Cloudflare Access pomocí kubectl
Ke strojům se můžete připojit přes kubectl pomocí platformy Cloudflare Zero Trust.
Tento postup popisuje, jak:
- Sestavit zásadu v Cloudflare Access k zabezpečení počítače
- Připojení počítače k síti Cloudflare pomocí kubectl
- Připojení z klientského počítače
Než začnete
Doba dokončení:
30 minut
Vytvořit zásadu Access
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
- Vyberte Vytvořit novou aplikaci.
- Vyberte Vlastní hosting a soukromé.
- Vyberte Přidejte veřejný hostname a zadejte subdoménu. Bude to hostitelský název, na kterém bude vaše aplikace uživatelům dostupná.
- Vytvořit novou zásadu řídit, kdo se dostane k aplikaci, nebo vybrat existující zásady.
- Postupujte podle zbývajících kroky pro vytvoření aplikace s vlastním hostováním k publikování aplikace.
Nainstalujte cloudflared
Cloudflare Tunnel vytváří zabezpečené odchozí spojení mezi tímto počítačem a sítí Cloudflare. Díky modelu pouze odchozích spojení můžete zamezit jakémukoli přímému přístupu k tomuto počítači a uzavřít veškeré externě vystavené vstupní body. Výsledkem jsou žádné otevřené porty firewallu.
Cloudflare Tunnel funguje díky odlehčenému daemonu od Cloudflare s názvem cloudflared. Stáhněte a nainstalujte cloudflared na počítači DigitalOcean podle pokynů uvedených na Ke stažení stránce.
Ověřte cloudflared
Spusťte následující příkaz pro ověření cloudflared ve vašem účtu Cloudflare.
cloudflared tunnel logincloudflared otevře okno prohlížeče a vyzve vás k přihlášení do vašeho účtu Cloudflare. Pokud pracujete na počítači bez prohlížeče nebo se okno prohlížeče neotevře, můžete zkopírovat URL adresu z výstupu příkazové řádky a otevřít ji v prohlížeči na jiném počítači.
Zvolte libovolný hostname ze seznamu. Cloudflare vydá certifikát platný pro celý váš účet. Nemusíte vybírat konkrétní hostname, na kterém budete Tunnel obsluhovat.
Vytvořte Tunnel
Dále vytvořte tunel pomocí níže uvedeného příkazu.
cloudflared tunnel create <NAME>Nahrazování <NAME> s názvem tunelu. Tento název může být libovolná hodnota. Jeden tunel může obsluhovat provoz pro více hostname k více službám ve vašem prostředí, včetně kombinace typů připojení, jako jsou SSH a HTTP.
Příkaz vypíše ID tunelu a vygeneruje přidružený soubor s přihlašovacími údaji. Seznam tunelů ve vašem účtu si kdykoli můžete zobrazit pomocí následujícího příkazu.
cloudflared tunnel listKonfigurace Tunnelu
Nyní můžete nakonfigurovat tunel k obsluze provozu.
Vytvořte YAML soubor, který cloudflared dosáhne. Ve výchozím nastavení cloudflared vyhledá soubor ve stejné složce, kde cloudflared byl nainstalován.
vim ~/.cloudflared/config.ymlDále nakonfigurujte Tunnel, přičemž ukázkové ID níže nahraďte ID tunelu vytvořeného výše. Kromě toho nahraďte hostname v tomto příkladu hostname aplikace nakonfigurované pomocí Cloudflare Access.
tunnel: 6ff42ae2-765d-4adf-8112-31c55c1551ef
credentials-file: /root/.cloudflared/6ff42ae2-765d-4adf-8112-31c55c1551ef.json
ingress:
- hostname: azure.widgetcorp.tech
service: tcp://kubernetes.docker.internal:6443
originRequest:
proxyType: socks
- service: http_status:404
# Catch-all rule, which responds with 404 if traffic doesn't match any of
# the earlier rulesTrasa k tunelu
Nyní můžete vytvořit DNS záznam, který bude provoz směrovat do tohoto Tunnelu. Na jeden Tunnel může ukazovat více DNS záznamů a provoz se bude odesílat do nakonfigurované služby, pokud je hostname definován pomocí ingress pravidlo.
-
Přihlaste se do Cloudflare dashboard ↗ a přejděte do DNS záznamy stránku vaší domény.
Přejděte na Záznamy ↗ -
Vyberte Přidat záznam. Vyberte
CNAMEjako typ záznamu. Pro Název, zvolte hostname, na kterém chcete vytvořit Tunnel. Ten by měl odpovídat hostname zásady Access. -
Pro Cíl, zadejte ID svého tunelu následované
.cfargotunnel.com. Například:
6ff42ae2-765d-4adf-8112-31c55c1551ef.cfargotunnel.com- Vyberte Save.
Spuštění Tunnelu
Nyní můžete spustit Tunnel a připojit cílovou službu ke Cloudflare. Tunnel spustíte následujícím příkazem, ve kterém nahraďte <NAME> s názvem vytvořeným pro váš tunel.
cloudflared tunnel run <NAME>Doporučujeme spustit cloudflared jako služba která je nakonfigurována tak, aby se spustila při startu.
Připojení z klientského počítače
Nyní se můžete připojit z klientského počítače pomocí cloudflared.
Tento příklad používá notebook s macOS. V macOS můžete nainstalovat cloudflared s následujícím příkazem pomocí Homebrew.
brew install cloudflaredSpusťte následující příkaz pro vytvoření připojení ze zařízení ke Cloudflare. Lze zadat libovolný dostupný port.
cloudflared access tcp --hostname azure.widgetcorp.tech --url 127.0.0.1:1234Když tato služba běží, můžete spustit kubectl příkaz a cloudflared otevře okno prohlížeče a vyzve uživatele k ověření u vašeho poskytovatele SSO. Po úspěšném ověření cloudflared zpřístupní připojení klientskému počítači na lokální URL adrese uvedené v příkazu.
kubeconfig v současné době nepodporuje konfigurace proxy příkazů, i když komunita předložila plány to změnit. Mezitím mohou uživatelé pro úsporu času vytvořit alias API serveru clusteru.
alias kubeone="env HTTPS_PROXY=socks5://127.0.0.1:1234 kubectl"