编程语言
首页 > 编程语言> > Terraform入门教程,示例展示管理Docker和Kubernetes资源,java技术图谱

Terraform入门教程,示例展示管理Docker和Kubernetes资源,java技术图谱

作者:互联网

创建一个 main.tf 文件,写入以下内容:

terraform {

required_providers {

docker = {

source = “kreuzwerker/docker”

}

}

}

provider “docker” {}

resource “docker_image” “nginx” {

name = “nginx:latest”

keep_locally = false

}

resource “docker_container” “nginx” {

image = docker_image.nginx.latest

name = “tutorial”

ports {

internal = 80

external = 8000

}

}

根据 main.tf 初始化项目:

$ terraform init

Initializing the backend…

Initializing provider plugins…

Partner and community providers are signed by their developers.

If you’d like to know more about provider signing, you can read about it here:

https://www.terraform.io/docs/cli/plugins/signing.html

Terraform has created a lock file .terraform.lock.hcl to record the provider

selections it made above. Include this file in your version control repository

so that Terraform can guarantee to make the same selections by default when

you run “terraform init” in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running “terraform plan” to see

any changes that are required for your infrastructure. All Terraform commands

should now work.

If you ever set or change modules or backend configuration for Terraform,

rerun this command to reinitialize your working directory. If you forget, other

commands will detect it and remind you to do so if necessary.

我们先执行plan来看看它将会有什么变更:

$ terraform plan

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:

Terraform will perform the following actions:

docker_container.nginx will be created

}

}

}

}

docker_image.nginx will be created

}

Plan: 2 to add, 0 to change, 0 to destroy.

执行变更:

$ terraform apply

docker_image.nginx: Creating…

docker_image.nginx: Still creating… [10s elapsed]

docker_image.nginx: Still creating… [20s elapsed]

docker_image.nginx: Creation complete after 28s [id=sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdeenginx:latest]

docker_container.nginx: Creating…

docker_container.nginx: Creation complete after 1s [id=0dac86e383366959bd976cc843c88395a17c5734d729f62f07106caf604b466f]

它自动帮我们下载了镜像和启动了容器。通过以下命令查看nginx的主页:

$ curl http://localhost:8000

现在我不想要这些资源了,通过以下命令删除:

$ terraform destroy

docker_container.nginx: Destroying… [id=0dac86e383366959bd976cc843c88395a17c5734d729f62f07106caf604b466f]

docker_container.nginx: Destruction complete after 0s

docker_image.nginx: Destroying… [id=sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdeenginx:latest]

docker_image.nginx: Destruction complete after 1s

4 部署Kubernetes资源


创建目录:

$ mkdir terraform-kubernetes-demo && cd $_

创建 main.tf 文件:

terraform {

required_providers {

kubernetes = {

source = “hashicorp/kubernetes”

version = “>= 2.0.0”

}

}

}

provider "kubernete

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

s" {

config_path = “~/.kube/config”

}

resource “kubernetes_namespace” “test” {

metadata {

name = “nginx”

}

}

resource “kubernetes_deployment” “test” {

metadata {

name = “nginx”

namespace = kubernetes_namespace.test.metadata.0.name

}

spec {

replicas = 2

selector {

match_labels = {

app = “MyTestApp”

}

}

template {

metadata {

labels = {

app = “MyTestApp”

}

}

spec {

container {

image = “nginx”

name = “nginx-container”

port {

container_port = 80

}

}

标签:java,Kubernetes,示例,image,after,nginx,known,apply,docker
来源: https://blog.csdn.net/m0_64867047/article/details/121766575