ヒトリ歩き

愚痴とかいろいろ書きます

YamlファイルからDeploymentやServiceを登録してみた

f:id:kotapontan:20210519213333p:plain 前回、自作アプリをminikubeにデプロイしてみましたが、DeploymentやServiceをコマンドで登録しました。

kotapontan.hatenablog.com

今回は、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の定義を合わせていないといけないことに気づかずに、つまづいた。
なぜ、合わせないといけないのかは後日ちゃんと調べようと思う。