KinDを使用したKubernetesの開発者
このガイドでは、KinDを使用します。KinDはDockerを使用してKubernetesクラスターを作成し、異なるバージョンや複数のノードをデプロイするための簡単なメカニズムを提供します。
また、nip.ioを利用します。nip.ioを利用すると、次のような形式で任意のIPアドレスをホスト名にマッピングすることができます:192.168.1.250.nip.io
、これは192.168.1.250
にマッピングされます。 インストールの必要はありません。
準備
必要な情報
以下のインストール・オプションはすべて、あなたのホストIPを知る必要があります。 この情報を見つけるためのいくつかのオプションを紹介します:
- Linux:
hostname -i
- MacOS:
ipconfig getifaddr en0
en0
プライマリインターフェースとして使用されます。 別のプライマリインターフェースを持つシステムを使用している場合は、そのインターフェース名を. en0
名前空間の使用
default
以外のネームスペースにアプリケーションをインストールするのがベストプラクティスとされています。kubectl create namespace (some name)
を使用してネームスペースを作成し、--namespace (some name)
を追加してkubectl
コマンドを実行することができます。何度も入力したくない場合は、kubectxプロジェクトのkubens
をチェックしてください。
kubectlのインストール
kubectl
をインストールするには、こちらの手順に従ってください。
Helmのインストール
helm
をインストールするには、こちらの手順に従ってください。
KinDのインストール
kind
をインストールするには、こちらの手順に従ってください。
GitLab Helm チャートの追加
以下のコマンドに従って、GitLab Helmチャートにアクセスできるようにシステムをセットアップしてください:
helm repo add gitlab https://charts.gitlab.io/
helm repo update
デプロイオプション
ニーズに応じて、以下のデプロイオプションから1つを選択します。
ポートフォワーディング
この方法では、kubectl
を使って NGINX Controller サービスをローカルにポートフォワードします。
まず、examples/kind/values-port-forward.yaml
を開き、global.hosts.domain
を(your host IP).nip.io
に設定します。次に、以下のコマンドを実行します:
kind create cluster --config examples/kind/kind-port-forward.yaml
helm upgrade --install gitlab gitlab/gitlab -f examples/kind/values-port-forward.yaml
sudo kubectl port-forward --address (your host IP) service/gitlab-nginx-ingress-controller 443:443
GitLab へのアクセスは以下から行えます。https://gitlab.(your host IP).nip.io
kubectl port-forward
コマンドでsudo
を使用しているのは、ローカルでポート443をホストするには昇格権限が必要なためです。runnerが正常に接続できるようにするには、ポート443をホストする必要があります(runnerが接続するのは、ポートフォワードが開始されてからであることに注意してください)。SSLを使用したNginx Ingress NodePort
この方法では、kind
を使用して、Nginx コントローラサービスの NodePorts を SSL を有効にしたローカルマシンのポートに公開します。
まず、examples/kind/values-ssl.yaml
を開き、global.hosts.domain
を(your host IP).nip.io
に設定します。次に、以下のコマンドを実行します:
kind create cluster --config examples/kind/kind-ssl.yaml
helm upgrade --install gitlab gitlab/gitlab -f examples/kind/values-ssl.yaml
GitLab にはhttps://gitlab.(your host IP).nip.io
からアクセスできます。
(オプション)ルート CA の追加
ブラウザが自己署名証明書を信頼するためには、ルートCAをダウンロードし、それを信頼してください:
kubectl get secret gitlab-wildcard-tls-ca -ojsonpath='{.data.cfssl_ca}' | base64 --decode > gitlab.(your host IP).nip.io.ca.pem
ルートCAをダウンロードしたら、ローカルチェーンに追加します(手順はプラットフォームによって異なりますが、オンラインで簡単に入手できます)。
gitlab-runner.install=false
。SSLなしのNginx Ingress NodePort
この方法では、kind
を使用して、Nginx コントローラサービスの NodePorts を SSL を無効にしたローカルマシンのポートに公開します。
まず、examples/kind/values-no-ssl.yaml
を開き、global.hosts.domain
を(your host IP).nip.io
に設定します:
kind create cluster --config examples/kind/kind-no-ssl.yaml
helm upgrade --install gitlab gitlab/gitlab -f examples/kind/values-no-ssl.yaml
GitLabにはhttp://gitlab.(your host IP).nip.io
からアクセスしてください。
docker login
でレジストリにログインする必要がある場合は、Dockerに安全でないレジストリを信頼するように指示する必要があります。清掃
ローカルシステムをクリーンアップする準備ができたら、このコマンドを実行してください:
kind delete cluster
--name
フラグを使用して特定のクラスターを削除できます。