2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

terraformでdocker for macとkubernetesを動かしてみる

Last updated at Posted at 2019-12-26

はじめに

最近はローカル開発環境の管理を terraform + kubernetes に移行しました。この記事で環境検証のための一番簡単な作成例です。

準備

tf ファイルを書く

この設定には、Alpineイメージの中のncコマンドを使って、echo サーバーを起動する。そして Service 利用して外部に公開します。

test.tf
provider "kubernetes" {
  version                  = "~> 1.10"
  host                     = "https://localhost:6443"
  config_context_auth_info = "docker-desktop"
  config_context_cluster   = "docker-desktop"
}

resource "kubernetes_pod" "echo" {
  metadata {
    name = "echo"
    labels = {
      app = "echo"
    }
  }

  spec {
    container {
      image   = "alpine:latest"
      name    = "echo"
      command = ["nc"]
      args    = ["-vlkp", "2000", "-e", "/bin/cat"]
    }
  }
}

resource "kubernetes_service" "echo" {
  metadata {
    name = "echo"
  }
  spec {
    selector = {
      app = "${kubernetes_pod.echo.metadata.0.labels.app}"
    }
    session_affinity = "ClientIP"
    port {
      port        = 2000
      target_port = 2000
    }

    type = "LoadBalancer"
  }
}

実行と検証

設定ファイルを terraform に応用しましょう。

$ terraform init
$ terraform plan
$ terraform apply

成功した後、kubernetes の方には pod と service は起動したことを確認しましょう。

$ kubectl get po
NAME   READY   STATUS    RESTARTS   AGE
echo   1/1     Running   0          17s
$ kubectl get svc
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
echo         LoadBalancer   10.98.63.163   localhost     2000:30091/TCP   12s

サービスに接続みる。

$ nc -v localhost 2000

リソースの削除

$ terraform destroy -auto-approve
kubernetes_pod.echo: Refreshing state... [id=default/echo]
kubernetes_service.echo: Refreshing state... [id=default/echo]
kubernetes_service.echo: Destroying... [id=default/echo]
kubernetes_service.echo: Destruction complete after 0s
kubernetes_pod.echo: Destroying... [id=default/echo]
kubernetes_pod.echo: Destruction complete after 3s

Destroy complete! Resources: 2 destroyed.
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?