前回、自作アプリをminikubeにデプロイしてみましたが、DeploymentやServiceをコマンドで登録しました。
今回は、yamlファイルを作成してやってみることにします。
やってみた
まずは、Deploymentの定義ファイルを作成。
apiVersion: apps/v1 kind: Deployment metadata: name: tomsan spec: selector: matchLabels: app: tomsan replicas: 1 template: metadata: labels: app: tomsan spec: containers: - name: tomsan image: 192.168.0.17:5000/sample/tomsan:1.0
Deploymentと同様にServiceの定義ファイルを作成。
apiVersion: v1 kind: Service metadata: name: tomsan-deployment spec: type: LoadBalancer ports: - port: 8080 protocol: TCP selector: app: tomsan
DeploymentとServiceの定義ファイルを登録して、サービスを作成。
$ kubectl apply -f deployment.yaml -f service.yaml $ minikube service tomsan-deployment |-----------|-------------------|-------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|-------------------|-------------|---------------------------| | default | tomsan-deployment | 8080 | http://192.168.49.2:32009 | |-----------|-------------------|-------------|---------------------------| 🏃 Starting tunnel for service tomsan-deployment. |-----------|-------------------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|-------------------|-------------|------------------------| | default | tomsan-deployment | | http://127.0.0.1:51522 | |-----------|-------------------|-------------|------------------------| 🎉 Opening service default/tomsan-deployment in default browser... ❗ Dockerドライバーをdarwin上で動かしているため、実行するにはターミナルを開く必要があります。
疎通できることを確認
$ curl http://127.0.0.1:51522/Sample/hello Hello World update223
感想
手動でやったので、スムーズに出来るだろうと思ったが、lablesとselectorの定義を合わせていないといけないことに気づかずに、つまづいた。
なぜ、合わせないといけないのかは後日ちゃんと調べようと思う。