このページでは、Ciliumを利用してネットワークポリシーを設定する方法について説明します。 Ciliumについての詳細は、Introduction to Ciliumを参照してください。
Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。 このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。 まだクラスターがない場合、minikubeを使って作成するか、 以下のいずれかのKubernetesプレイグラウンドも使用できます:
バージョンを確認するには次のコマンドを実行してください: kubectl version.
Ciliumを手軽に試したい場合は、Cilium Kubernetes Getting Started Guideに従って、minikube上にCiliumをDaemonSetとして基本構成でインストールできます。
バージョンv1.5.2以上が必要なminikubeを起動するには、次の引数を指定して実行します。
minikube version
minikube version: v1.5.2
minikube start --network-plugin=cni
minikubeでは、CLIツールを使用してCiliumをインストールできます。 そのためには、まず次のコマンドで最新版のCLIをダウンロードします。
curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
次に、次のコマンドでダウンロードしたファイルを/usr/local/binディレクトリに展開します。
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz
上記のコマンドを実行した後、次のコマンドでCiliumをインストールできます。
cilium install
Ciliumはクラスターの構成を自動的に検出し、インストールを成功させるために必要な適切なコンポーネントを作成・インストールします。 コンポーネントは次のとおりです。
cilium-ca内の認証局(CA)と、Hubble(Ciliumのオブザーバビリティレイヤー)用の証明書。インストール後、cilium statusコマンドでCiliumデプロイメントの全体的なステータスを確認できます。
statusコマンドの想定される出力はこちらを参照してください。
Getting Started Guideの残りの部分では、サンプルアプリケーションを使用して、L3/L4(すなわちIPアドレス+ポート)のセキュリティポリシーと、L7(例えばHTTP)のセキュリティポリシーの両方を適用する方法について説明しています。
本番環境にCiliumをデプロイする際の詳細な手順については、Cilium Kubernetes Installation Guideを参照してください。 Cilium Kubernetes Installation Guide このドキュメントには、詳細な要件、手順、および本番環境向けのDaemonSetファイルの例が含まれています。
Ciliumを使用してクラスターをデプロイすると、kube-system Namespaceに複数のPodが追加されます。
このPodの一覧を確認するには、次を実行します。
kubectl get pods --namespace=kube-system -l k8s-app=cilium
次のように、Podの一覧が表示されます。
NAME READY STATUS RESTARTS AGE
cilium-kkdhz 1/1 Running 0 3m23s
...
cilium Podはクラスター内の各ノードで実行され、Linux BPFを使用してそのノード上のPodとの間のトラフィックに対してネットワークポリシーを適用します。
クラスターが起動したら、ネットワークポリシーを宣言するに従って、CiliumでKubernetesのNetworkPolicyを試すことができます。 ぜひお楽しみください。 ご質問があれば、Cilium Slackチャンネルまでお問い合わせください。