Ciliumを利用したネットワークポリシーの設定

Ciliumを利用したネットワークポリシーの設定

このページでは、Ciliumを利用してネットワークポリシーを設定する方法について説明します。 Ciliumについての詳細は、Introduction to Ciliumを参照してください。

始める前に

Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。 このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。 まだクラスターがない場合、minikubeを使って作成するか、 以下のいずれかのKubernetesプレイグラウンドも使用できます:

バージョンを確認するには次のコマンドを実行してください: kubectl version.

ベーシックなテストのためにMinikubeにCiliumをデプロイする

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はクラスターの構成を自動的に検出し、インストールを成功させるために必要な適切なコンポーネントを作成・インストールします。 コンポーネントは次のとおりです。

  • Secret cilium-ca内の認証局(CA)と、Hubble(Ciliumのオブザーバビリティレイヤー)用の証明書。
  • ServiceAccount。
  • ClusterRole。
  • ConfigMap。
  • エージェントのDaemonSetとOperatorのデプロイメント。

インストール後、cilium statusコマンドでCiliumデプロイメントの全体的なステータスを確認できます。 statusコマンドの想定される出力はこちらを参照してください。

Getting Started Guideの残りの部分では、サンプルアプリケーションを使用して、L3/L4(すなわちIPアドレス+ポート)のセキュリティポリシーと、L7(例えばHTTP)のセキュリティポリシーの両方を適用する方法について説明しています。

本番環境向けにCiliumをデプロイする

本番環境にCiliumをデプロイする際の詳細な手順については、Cilium Kubernetes Installation Guideを参照してください。 Cilium Kubernetes Installation Guide このドキュメントには、詳細な要件、手順、および本番環境向けのDaemonSetファイルの例が含まれています。

Ciliumのコンポーネントを理解する

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チャンネルまでお問い合わせください。