Eugeny Shtoltc

IT Cloud


Скачать книгу

create

      Terraform will perform the following actions:

      # google_compute_instance.cluster will be created

      + resource "google_compute_instance" "cluster" {

      + can_ip_forward = false

      + cpu_platform = (known after apply)

      + deletion_protection = false

      + guest_accelerator = (known after apply)

      + id = (known after apply)

      + instance_id = (known after apply)

      + label_fingerprint = (known after apply)

      + machine_type = "f1-micro"

      + metadata_fingerprint = (known after apply)

      + name = "cluster"

      + project = (known after apply)

      + self_link = (known after apply)

      + tags_fingerprint = (known after apply)

      + zone = "europe-north1-a"

      + boot_disk {

      + auto_delete = true

      + device_name = (known after apply)

      + disk_encryption_key_sha256 = (known after apply)

      + source = (known after apply)

      + initialize_params {

      + image = "debian-cloud / debian-9"

      + size = (known after apply)

      + type = (known after apply)

      }

      }

      + network_interface {

      + address = (known after apply)

      + name = (known after apply)

      + network = "default"

      + network_ip = (known after apply)

      + subnetwork = (known after apply)

      + subnetwork_project = (known after apply)

      + access_config {

      + assigned_nat_ip = (known after apply)

      + nat_ip = (known after apply)

      + network_tier = (known after apply)

      }

      }

      + scheduling {

      + automatic_restart = (known after apply)

      + on_host_maintenance = (known after apply)

      + preemptible = (known after apply)

      + node_affinities {

      + key = (known after apply)

      + operator = (known after apply)

      + values = (known after apply)

      }

      }

      }

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

      Do you want to perform these actions?

      Terraform will perform the actions described above.

      Only 'yes' will be accepted to approve.

      Enter a value: yes

      google_compute_instance.cluster: Creating …

      google_compute_instance.cluster: Still creating … [10s elapsed]

      google_compute_instance.cluster: Creation complete after 11s [id = cluster]

      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

      Add a public static IP address and SSH key to the node:

      essh @ kubernetes-master: ~ / node-cluster $ ssh-keygen -f node-cluster

      Generating public / private rsa key pair.

      Enter passphrase (empty for no passphrase):

      Enter same passphrase again:

      Your identification has been saved in node-cluster.

      Your public key has been saved in node-cluster.pub.

      The key fingerprint is:

      SHA256: vUhDe7FOzykE5BSLOIhE7Xt9o + AwgM4ZKOCW4nsLG58 essh @ kubernetes-master

      The key's randomart image is:

      + – [RSA 2048] – +

      | .o. +. |

      | o. o. =. |

      | * + o. =. |

      | = *. … ... + o |

      | B +. … S * |

      | = + oo X +. |

      | o. =. + = + |

      | . = .... … |

      | ..E. |

      + – [SHA256] – +

      essh @ kubernetes-master: ~ / node-cluster $ ls node-cluster.pub

      node-cluster.pub

      essh @ kubernetes-master: ~ / node-cluster $ cat main.tf

      provider "google" {

      credentials = "$ {file (" kubernetes_key.json ")}"

      project = "node-cluster-243923"

      region = "europe-north1"

      }

      resource "google_compute_address" "static-ip-address" {

      name = "static-ip-address"

      }

      resource "google_compute_instance" "cluster" {

      name = "cluster"

      zone = "europe-north1-a"

      machine_type = "f1-micro"

      boot_disk {

      initialize_params {

      image = "debian-cloud / debian-9"

      }

      }

      metadata = {

      ssh-keys = "essh: $ {file (" ./ node-cluster.pub ")}"

      }

      network_interface {

      network = "default"

      access_config {

      nat_ip = "$ {google_compute_address.static-ip-address.address}"

      }

      }

      } essh @ kubernetes-master: ~ / node-cluster $ sudo ./terraform apply

      Let's check the SSH connection to the server:

      essh @ kubernetes-master: ~ / node-cluster $ ssh -i ./node-cluster [email protected]

      The authenticity of host '35 .228.82.222 (35.228.82.222) 'can't be established.

      ECDSA key fingerprint is SHA256: o7ykujZp46IF + eu7SaIwXOlRRApiTY1YtXQzsGwO18A.

      Are you sure you want to continue connecting (yes / no)? yes

      Warning: Permanently added '35 .228.82.222 '(ECDSA) to the list of known hosts.

      Linux cluster 4.9.0-9-amd64 # 1 SMP Debian 4.9.168-1 + deb9u2 (2019-05-13) x86_64

      The programs included with the Debian GNU / Linux system are free software;

      the exact distribution terms for each program are described in the

      individual files in / usr / share / doc / * / copyright.

      Debian GNU / Linux comes with ABSOLUTELY NO WARRANTY, to the extent

      permitted by applicable law.

      essh @ cluster: ~ $ ls

      essh @ cluster: ~ $ exit

      logout

      Connection to 35.228.82.222 closed.

      Install packages:

      essh @ kubernetes-master: ~ / node-cluster $ curl