KinDを使用したKubernetesの開発者
このガイドは、ローカルKubernetes開発環境をセットアップするためのクロスプラットフォームリソースとして提供することを目的としています。このガイドでは、KinDを使用します。これはDockerを使用してKubernetesクラスターを作成し、異なるバージョンや複数のノードをデプロイするための簡単なメカニズムを提供します。
また、nip.ioも利用します。nip.ioでは、以下のようなフォーマットで任意のIPアドレスをホスト名にマッピングすることができます:192.168.1.250.nip.io
192.168.1.250
にマッピングします。 インストールは不要です。
アップルシリコン (M1/M2)
kind
は、colima
と共に使用することで、M1
およびM2
の亜種を含む、macOS 上のローカル Kubernetes 開発環境を提供することができます。
依存関係のインストール
- MacOS >= 13 (Ventura)を使用していることを確認してください。
-
colima
をインストールします。 -
インストール
Rosetta
:softwareupdate --install-rosetta
VMの構築
colima
VMを作成します:
colima start --cpu 4 --memory 16 --disk 40 --profile docker --arch aarch64 --vm-type=vz --vz-rosetta
準備ができたら、以下の手順に従ってGitLabをkind
。
VM の管理
colima
VM を停止するには:
colima stop --profile docker
VMを再度起動します:
colima start --profile docker
ローカルシステムの削除とクリーンアップ
colima delete --profile docker
準備
必要な情報
以下のインストールオプションはすべて、ホストIPを知る必要があります。この情報を見つけるためのいくつかのオプションがあります:
- Linux:
hostname -i
- MacOS:
ipconfig getifaddr en0
en0
プライマリインターフェースとして en0
使用します。en0
異なるプライマリー・インターフェースを持つシステムを使用する場合は、そのインターフェイス名を.MacOSに置き換えて en0
ください。名前空間の使用
アプリケーションはdefault
以外のネームスペースにインストールするのがベストプラクティスとされています。kubectl でhelm install
を実行する前にネームスペースを作成してください:
kubectl create namespace YOUR_NAMESPACE
今後使用するすべてのkubectlコマンドに--namespace YOUR_NAMESPACE
。別の方法として、kubectxプロジェクトのkubens
、ネームスペースにコンテキストで切り替え、余分な入力を省略できます。
依存関係のインストール
asdf
(more info) を使って、以下のツールをインストールできます:
kubectl
helm
kind
kind
、Dockerを使ってローカルのKubernetesクラスターを実行するので、Dockerをインストールしておいてください。
設定例の入手
GitLab chartsリポジトリには、以下の手順で参照するすべてのサンプルが含まれています。リポジトリをクローンするか、既存のチェックアウトを更新して最新版を入手してください:
git clone https://gitlab.com/gitlab-org/charts/gitlab.git
GitLab Helm チャートの追加
以下のコマンドに従って、GitLab Helm チャートにアクセスできるように設定しましょう:
helm repo add gitlab https://charts.gitlab.io/
helm repo update
デプロイオプション
お客様のニーズに応じて、以下のデプロイオプションから1つを選択します。
kubectl --namespace YOUR_NAMESPACE get pods
GitLabは、webservice
ポッドが2/2
コンテナでREADY
状態を示している場合、完全にデプロイされています。
SSL付きNGINXイングレス・ノードポート
この方法では、kind
を使用して、NGINX コントローラサービスの NodePorts を SSL を有効にしたローカルマシンのポートに公開します。
kind create cluster --config examples/kind/kind-ssl.yaml
helm upgrade --install gitlab gitlab/gitlab \
--set global.hosts.domain=(your host IP).nip.io \
-f examples/kind/values-base.yaml \
-f examples/kind/values-ssl.yaml
そうすると、https://gitlab.(your host IP).nip.io
で GitLab にアクセスできるようになります。
(オプション)ルートCAを追加
ブラウザが自己署名証明書を信頼できるようにするには、ルートCAをダウンロードし、それを信頼します:
kubectl get secret gitlab-wildcard-tls-ca -ojsonpath='{.data.cfssl_ca}' | base64 --decode > gitlab.(your host IP).nip.io.ca.pem
ルー ト CA を ダ ウ ン ロ ー ド し た ら 、 ロ ーカルチ ェーンに追加 し ます (手順 はプ ラ ッ ト フ ォームご と に異な り ますが、 オ ン ラ イ ン で簡単に入手で き ます)。
SSLなしのNGINX Ingress NodePort
この方法では、kind
、SSLを無効にしてNGINXコントローラサービスのNodePortsをローカルマシンのポートに公開します。
kind create cluster --config examples/kind/kind-no-ssl.yaml
helm upgrade --install gitlab gitlab/gitlab \
--set global.hosts.domain=(your host IP).nip.io \
-f examples/kind/values-base.yaml \
-f examples/kind/values-no-ssl.yaml
GitLabにはhttp://gitlab.(your host IP).nip.io
からアクセスしてください。
docker login
でレジストリにログインする必要がある場合は、Dockerに安全でないレジストリを信頼するように指示する必要があります。DNSの処理
このガイドはnip.ioにネットワークアクセスできることを前提としています。これが利用できない場合は、KinDでも利用できるminikubeドキュメントのDNSの扱いを参照してください。
$(minikube ip)
の出力ではなく、ホストコンピュータのIPアドレスを使用することを忘れないでください。クリーンアップ
ローカルシステムをクリーンアップする準備ができたら、次のコマンドを実行してください:
kind delete cluster
--name
フラグを指定して特定のクラスターを削除できます。