Cloudflare Tunnelを使っておうちk8sクラスタにアクセスする

Cloudflare Tunnelを使うと、パブリックIPやポート開放なしにKubernetesクラスタ上のサービスをインターネットに公開できます。 今回はCloudflare Tunnelの作成から、cloudflare-tunnel-ingress-controllerを使ってKubernetesのIngressリソースで自動的にトンネル経由の公開を行う設定までをまとめました。 Cloudflare Tunnelの仕組み 通常、クラスタ内のサービスを外部に公開するにはパブリックIPの取得やルーターのポート開放が必要です。Cloudflare Tunnelを使うとクラスタ側からCloudflareへアウトバウンド接続を張るだけで、Cloudflare経由で外部からのアクセスを受けられるようになります。 cloudflare-tunnel-ingress-controllerを使うと、KubernetesのIngressリソースを作成するだけで自動的にCloudflare Tunnelのルーティングが設定されます。通常のIngress Controllerと同じ使い勝手でトンネル経由の公開が可能です。 Cloudflare Tunnelの作成 Cloudflareダッシュボードからトンネルを作成します。 ネットワーク > Tunnels に移動し、「トンネルを作成」をクリックします。 トンネル名を入力します。ここでは kkato.app としました。 トンネルが作成されると、環境のセットアップ画面が表示されます。ここに表示されるトンネルトークンを後ほど使います。 作成が完了するとトンネルの概要が表示されます。 Cloudflare APIトークンの作成 cloudflare-tunnel-ingress-controllerがCloudflare APIを操作するためのトークンを作成します。 CloudflareダッシュボードのAPIトークンページにアクセスし、「Create Token」から「Create Custom Token」を選択します。 以下の権限を設定します。 Account / Cloudflare Tunnel / Edit Zone / DNS / Edit シークレットをGCP Secret Managerに登録 External Secrets Operatorを使ってGCP Secret ManagerからKubernetesのSecretを自動生成する構成にしています。以下の3つのシークレットを登録します。 echo -n "<your-api-token>" | gcloud secrets create cloudflare-api-token --data-file=- echo -n "<your-account-id>" | gcloud secrets create cloudflare-account-id --data-file=- echo -n "<your-tunnel-name>" | gcloud secrets create cloudflare-tunnel-name --data-file=- アカウントIDはCloudflareダッシュボードのURLやトンネルトークンのデコード結果から確認できます。 ...

March 1, 2026 · Ken Kato

Argo CDをインストールしてみた

Argo CDはKubernetes向けのGitOpsツールで、Gitリポジトリに置いたマニフェストをクラスタに自動で反映してくれます。 今回はHelmを使ってArgo CDをインストールし、リポジトリの接続からApplicationの作成までを試してみました。 Argo CDのインストール Helm Chartリポジトリを追加します。 helm repo add argo https://argoproj.github.io/argo-helm helm repo update argocd namespaceにインストールします。 helm install argocd argo/argo-cd \ --namespace argocd \ --create-namespace \ --version 7.8.13 Podが正常に起動していることを確認します。 kubectl get pods -n argocd Argo CD UIにアクセスする port-forwardでArgo CDのUIにアクセスできます。 kubectl port-forward svc/argocd-server -n argocd 8080:443 ブラウザで http://localhost:8080 にアクセスします。 初期パスワードは以下のコマンドで取得できます。ユーザー名はadminです。 kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d Gitリポジトリを接続する Argo CDがGitリポジトリからマニフェストを取得するために、リポジトリの接続設定が必要です。 SSH鍵の作成 Argo CD専用のSSH鍵を作成します。 ssh-keygen -t ed25519 -f ~/.ssh/argocd -C "argocd" -N "" GitHubにDeploy Keyを登録 生成した公開鍵をリポジトリのDeploy Keyとして登録します。 ...

February 20, 2026 · Ken Kato