kubernetes 学習 練習プロジェクトのデプロイ
ここに練習helloプロジェクト作ったので、k8s にデプロイしてみる https://github.com/tjtjtj/kbhello
プライベートリポジトリ起動
プライベートリポジトリ起動
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker run -d -p 5000:5000 registry:2 206d41978282a4376333eb7e4df100ad44e49a00a2ee480ca05fac10f60c5132 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 206d41978282 registry:2 "/entrypoint.sh /etc…" 8 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp dreamy_archimedes
カタログ確認
# curl localhost:5000/v2/_catalog {"repositories":[]}
プライベートリポジトリにコンテナイメージ登録
git clone, ビルド, イメージ作成, タギング, docker-login, タグpush ... メンドクサー
git clone https://github.com/tjtjtj/kbhello.git cd kbhello chmod 744 gradlew ./gradlew build docker build -t kbhello:1 . docker tag kbhello:1 192.168.0.1:5000/kbhello:1 docker login 192.168.0.1:5000 docker push 192.168.0.1:5000/kbhello:1
イメージ確認
# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.0.1:5000/kbhello 1 e6f5c6b7264b 5 minutes ago 121MB kbhello 1 e6f5c6b7264b 5 minutes ago 121MB
カタログ確認
# curl localhost:5000/v2/_catalog {"repositories":["kbhello"]}
デプロイ
kbhello-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: kbhello-deployment spec: replicas: 2 selector: matchLabels: app: kbhello template: metadata: labels: app: kbhello spec: containers: - name: kbhello image: 192.168.0.1:5000/kbhello:1 ports: - containerPort: 8080
デプロイ
$ kubectl apply -f kbhello-deployment.yaml deployment.apps/kbhello-deployment created $ kubectl get pod NAME READY STATUS RESTARTS AGE kbhello-deployment-7cd47cbb58-f7hdq 0/1 ContainerCreating 0 3s kbhello-deployment-7cd47cbb58-fhb4x 0/1 ContainerCreating 0 3s $ kubectl get pod NAME READY STATUS RESTARTS AGE kbhello-deployment-7cd47cbb58-f7hdq 1/1 Running 0 8s kbhello-deployment-7cd47cbb58-fhb4x 1/1 Running 0 8s $ kubectl get pod
ロードバランサ作成
$ kubectl expose deployment kbhello-deployment --type=LoadBalancer --name=kbhello-service service/kbhello-service exposed $ kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kbhello-service LoadBalancer 10.98.159.32 <pending> 8080:31872/TCP 16s
動作確認
$ curl 10.98.159.32:8080 Hello Docker World $ curl 10.98.159.32:8080 Hello Docker World
OK これをベースにいろいろやってみよう。