概要
-
AKS
とGitLab CI/CD
を連携させたい - 今回は
Ubuntu
でセットアップ - ローカルで
k8s
を使用するときはminikube
を使用する
参考
Minikubeを使用してローカル環境でKubernetesを動かす
インストール
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
クラスターをスタート
minikube start
クラスターとのアクセス
※適切なバージョンのkubectlをダウンロード
minikube kubectl -- get po -A
デプロイ
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
デプロイができているかの確認
kubectl get services hello-minikube
ブラウザでの確認
kubectl port-forward service/hello-minikube 7080:8080
minikubeクラスターを消すとき
minikube delete --all
Linux に Azure CLI をインストールする(オプション)
インストール プロセスに必要なパッケージを取得
sudo apt-get update
sudo apt-get install ca-certificates curl apt-transport-https lsb-release gnupg
Microsoft の署名キーをダウンロードしてインストール
curl -sL https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor |
sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
Azure CLI ソフトウェア リポジトリを追加
※ドキュメント通りに進めると、Malformed entry 1 in list file /etc/apt/sources.list.d/azure-cli.list (Component)
というエラーが発生するので以下コマンドに変更
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | \
sudo tee /etc/apt/sources.list.d/azure-cli.list
リポジトリ情報を更新し、azure-cli パッケージをインストール
sudo apt-get update
sudo apt-get install azure-cli
Gitlabにエージェントを登録する
helm repo add gitlab https://charts.gitlab.io
helm repo update
helm upgrade --install test-agent gitlab/gitlab-agent \
--namespace gitlab-agent-test-agent \
--create-namespace \
--set image.tag=v15.7.0-rc1 \
--set config.token=dtsVBzNXXNibasVA8xq8_4mZkxdU1MLxicMnqZ5ZA7JEHYvMsw \
--set config.kasAddress=wss://kas.gitlab.com
クラスターにエージェントを登録する
- helmをインストールする
- ターミナルを開く
- 先ほどコピーしたコマンドを実行する
NAME: test-agent
LAST DEPLOYED: Wed Dec 7 17:23:31 2022
NAMESPACE: gitlab-agent-test-agent
STATUS: deployed
REVISION: 1
TEST SUITE: None
.gitlab-ci.yml ファイルの編集
deploy:
image:
name: bitnami/kubectl:latest
entrypoint: ['']
script:
- kubectl config get-contexts
- kubectl config use-context path/to/agent/repository:agent-name
- kubectl get pods
※今回はminikube
を使用
デプロイ完了
Troubleshooting
minikube startできないとき。。。
以下を試す。
$ minikube stop
$ minikube delete
$ rm -rf ~/.minikube
$ minikube start