项目作者: cicdteam

项目描述 :
AWS AMI images used in Kubernetes cluster
高级语言: Shell
项目地址: git://github.com/cicdteam/k8s-ami.git
创建时间: 2017-06-19T04:39:01Z
项目社区:https://github.com/cicdteam/k8s-ami

开源协议:

下载


AWS AMI for Kubernetes cluster

This repository contain specification and script to create AWS AMI images used to run Kubernete nodes (master and workes).
Images based on latest Ubuntu 16.04 Xenial server cloud image.

Content of resulting AMI

  • useful utils as curl, awscli, jq
  • docker engine (version 1.12)
  • nvidia gpu drivers (version 375)
  • k8s tools as kubelet, kubeadm, kubectl, kubernetes-cni (version 1.6)

AMI availability

Script create’s public accessible AMI’s for next regions:

  • us-east-1
  • us-east-2
  • us-west-1
  • us-west-2
  • eu-west-1
  • eu-west-2
  • eu-central-1

Example ho to use AMI in Terraform

use data aws_ami resourse to find AMI

  1. provider "aws" {
  2. region = "us-west-2"
  3. }
  4. data "aws_ami" "image" {
  5. most_recent = true
  6. filter {
  7. name = "name"
  8. values = ["k8s-1.6-gpu-ubuntu-xenial-amd64-hvm-ebs"]
  9. }
  10. filter {
  11. name = "virtualization-type"
  12. values = ["hvm"]
  13. }
  14. owners = ["551387705498"] # pureclouds
  15. }
  16. resource "aws_instance" "node" {
  17. ami = "${data.aws_ami.image.id}"
  18. instance_type = "t2.medium"
  19. tags = [
  20. { Name = "k8s-node" },
  21. { KubernetesCluster = "MyDevCluster" }
  22. ]
  23. root_block_device {
  24. volume_type = "gp2"
  25. volume_size = "30"
  26. }
  27. }

Tools used

Creating AMI’s

  1. $ ./create_amis.sh
  2. amazon-ebs output will be in this color.
  3. ==> amazon-ebs: Force Deregister flag found, skipping prevalidating AMI Name
  4. amazon-ebs: Found Image ID: ami-bfa98fda
  5. ==> amazon-ebs: Creating temporary keypair: packer_594759c6-3019-ca25-9e6c-eafd8978e438
  6. ==> amazon-ebs: Creating temporary security group for this instance...
  7. ==> amazon-ebs: Authorizing access to port 22 the temporary security group...
  8. ==> amazon-ebs: Launching a source AWS instance...
  9. amazon-ebs: Instance ID: i-0af41f72c4f8bf4e6
  10. ==> amazon-ebs: Waiting for instance (i-0af41f72c4f8bf4e6) to become ready...
  11. ==> amazon-ebs: Adding tags to source instance
  12. amazon-ebs: Adding tag: "Name": "Packer Builder"
  13. ==> amazon-ebs: Waiting for SSH to become available...
  14. ==> amazon-ebs: Connected to SSH!
  15. ==> amazon-ebs: Provisioning with shell script: k8s-1.6-gpu-xenial-init.sh
  16. amazon-ebs: INSTALL UTILS
  17. <<...skipped...>>
  18. amazon-ebs: 0 upgraded, 24 newly installed, 0 to remove and 7 not upgraded.
  19. amazon-ebs: Need to get 3,871 kB of archives.
  20. amazon-ebs: After this operation, 30.7 MB of additional disk space will be used.
  21. <<...skipped...>>
  22. amazon-ebs: INSTALL DOCKER
  23. <<...skipped...>>
  24. amazon-ebs: The following NEW packages will be installed:
  25. amazon-ebs: bridge-utils cgroupfs-mount containerd docker.io runc ubuntu-fan
  26. amazon-ebs: 0 upgraded, 6 newly installed, 0 to remove and 7 not upgraded.
  27. amazon-ebs: Need to get 16.4 MB of archives.
  28. amazon-ebs: After this operation, 83.6 MB of additional disk space will be used.
  29. <<...skipped...>>
  30. amazon-ebs: Server Version: 1.12.6
  31. <<...skipped...>>
  32. amazon-ebs: INSTALL NVIDIA DRIVERS
  33. amazon-ebs: 0 upgraded, 69 newly installed, 0 to remove and 7 not upgraded.
  34. amazon-ebs: Need to get 118 MB of archives.
  35. amazon-ebs: After this operation, 591 MB of additional disk space will be used.
  36. <<...skipped...>>
  37. amazon-ebs: Setting up nvidia-375 (375.66-0ubuntu0.16.04.1) ...
  38. <<...skipped...>>
  39. amazon-ebs: Loading new nvidia-375-375.66 DKMS files...
  40. amazon-ebs: First Installation: checking all kernels...
  41. amazon-ebs: Building only for 4.4.0-1018-aws
  42. amazon-ebs: Building for architecture x86_64
  43. amazon-ebs: Building initial module for 4.4.0-1018-aws
  44. amazon-ebs: Done.
  45. <<...skipped...>>
  46. amazon-ebs: DKMS: install completed.
  47. amazon-ebs: Setting up libcuda1-375 (375.66-0ubuntu0.16.04.1) ...
  48. amazon-ebs: Setting up nvidia-modprobe (375.51-0ubuntu1) ...
  49. <<...skipped...>>
  50. amazon-ebs: CHECK NVIDIA DRIVERS WORKING
  51. amazon-ebs: Mon Jun 19 05:00:30 2017
  52. amazon-ebs: +-----------------------------------------------------------------------------+
  53. amazon-ebs: | NVIDIA-SMI 375.66 Driver Version: 375.66 |
  54. amazon-ebs: |-------------------------------+----------------------+----------------------+
  55. amazon-ebs: | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
  56. amazon-ebs: | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
  57. amazon-ebs: |===============================+======================+======================|
  58. amazon-ebs: | 0 Tesla K80 Off | 0000:00:1E.0 Off | 0 |
  59. amazon-ebs: | N/A 52C P0 62W / 149W | 0MiB / 11439MiB | 91% Default |
  60. amazon-ebs: +-------------------------------+----------------------+----------------------+
  61. amazon-ebs:
  62. amazon-ebs: +-----------------------------------------------------------------------------+
  63. amazon-ebs: | Processes: GPU Memory |
  64. amazon-ebs: | GPU PID Type Process name Usage |
  65. amazon-ebs: |=============================================================================|
  66. amazon-ebs: | No running processes found |
  67. amazon-ebs: +-----------------------------------------------------------------------------+
  68. <<...skipped...>>
  69. amazon-ebs: INSTALL KUBERNETES COMPONENTS
  70. <<...skipped...>>
  71. amazon-ebs: 0 upgraded, 6 newly installed, 0 to remove and 7 not upgraded.
  72. amazon-ebs: Need to get 43.2 MB of archives.
  73. amazon-ebs: After this operation, 323 MB of additional disk space will be used.
  74. <<...skipped...>>
  75. amazon-ebs: DONE
  76. ==> amazon-ebs: Stopping the source instance...
  77. ==> amazon-ebs: Waiting for the instance to stop...
  78. ==> amazon-ebs: Creating the AMI: k8s-1.6-gpu-ubuntu-xenial-amd64-hvm-ebs
  79. amazon-ebs: AMI: ami-7b8aac1e
  80. ==> amazon-ebs: Waiting for AMI to become ready...
  81. ==> amazon-ebs: Copying AMI (ami-7b8aac1e) to other regions...
  82. amazon-ebs: Copying to: us-east-1
  83. amazon-ebs: Avoiding copying AMI to duplicate region us-east-2
  84. amazon-ebs: Copying to: us-west-1
  85. amazon-ebs: Copying to: us-west-2
  86. amazon-ebs: Copying to: eu-west-1
  87. amazon-ebs: Copying to: eu-west-2
  88. amazon-ebs: Copying to: eu-central-1
  89. amazon-ebs: Waiting for all copies to complete...
  90. ==> amazon-ebs: Modifying attributes on AMI (ami-b7173ad7)...
  91. amazon-ebs: Modifying: description
  92. amazon-ebs: Modifying: groups
  93. ==> amazon-ebs: Modifying attributes on AMI (ami-e1485e85)...
  94. amazon-ebs: Modifying: description
  95. amazon-ebs: Modifying: groups
  96. ==> amazon-ebs: Modifying attributes on AMI (ami-7b8aac1e)...
  97. amazon-ebs: Modifying: description
  98. amazon-ebs: Modifying: groups
  99. ==> amazon-ebs: Modifying attributes on AMI (ami-f7efe58e)...
  100. amazon-ebs: Modifying: description
  101. amazon-ebs: Modifying: groups
  102. ==> amazon-ebs: Modifying attributes on AMI (ami-dac2dbbc)...
  103. amazon-ebs: Modifying: description
  104. amazon-ebs: Modifying: groups
  105. ==> amazon-ebs: Modifying attributes on AMI (ami-4696bb50)...
  106. amazon-ebs: Modifying: description
  107. amazon-ebs: Modifying: groups
  108. ==> amazon-ebs: Modifying attributes on AMI (ami-fe943391)...
  109. amazon-ebs: Modifying: description
  110. amazon-ebs: Modifying: groups
  111. ==> amazon-ebs: Modifying attributes on snapshot (snap-0f6d67cb98b8aeca5)...
  112. ==> amazon-ebs: Modifying attributes on snapshot (snap-05a78f5ac7eeb30b6)...
  113. ==> amazon-ebs: Modifying attributes on snapshot (snap-0ed235d642453892a)...
  114. ==> amazon-ebs: Modifying attributes on snapshot (snap-0dbfa9a6089885955)...
  115. ==> amazon-ebs: Modifying attributes on snapshot (snap-0274d34efa39b17df)...
  116. ==> amazon-ebs: Modifying attributes on snapshot (snap-0dceb2aa988df7f7d)...
  117. ==> amazon-ebs: Modifying attributes on snapshot (snap-053cf732a96067740)...
  118. ==> amazon-ebs: Adding tags to AMI (ami-7b8aac1e)...
  119. ==> amazon-ebs: Tagging snapshot: snap-0ed235d642453892a
  120. ==> amazon-ebs: Creating AMI tags
  121. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  122. ==> amazon-ebs: Creating snapshot tags
  123. ==> amazon-ebs: Adding tags to AMI (ami-f7efe58e)...
  124. ==> amazon-ebs: Tagging snapshot: snap-0dbfa9a6089885955
  125. ==> amazon-ebs: Creating AMI tags
  126. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  127. ==> amazon-ebs: Creating snapshot tags
  128. ==> amazon-ebs: Adding tags to AMI (ami-dac2dbbc)...
  129. ==> amazon-ebs: Tagging snapshot: snap-0274d34efa39b17df
  130. ==> amazon-ebs: Creating AMI tags
  131. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  132. ==> amazon-ebs: Creating snapshot tags
  133. ==> amazon-ebs: Adding tags to AMI (ami-4696bb50)...
  134. ==> amazon-ebs: Tagging snapshot: snap-0dceb2aa988df7f7d
  135. ==> amazon-ebs: Creating AMI tags
  136. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  137. ==> amazon-ebs: Creating snapshot tags
  138. ==> amazon-ebs: Adding tags to AMI (ami-fe943391)...
  139. ==> amazon-ebs: Tagging snapshot: snap-053cf732a96067740
  140. ==> amazon-ebs: Creating AMI tags
  141. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  142. ==> amazon-ebs: Creating snapshot tags
  143. ==> amazon-ebs: Adding tags to AMI (ami-b7173ad7)...
  144. ==> amazon-ebs: Tagging snapshot: snap-0f6d67cb98b8aeca5
  145. ==> amazon-ebs: Creating AMI tags
  146. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  147. ==> amazon-ebs: Creating snapshot tags
  148. ==> amazon-ebs: Adding tags to AMI (ami-e1485e85)...
  149. ==> amazon-ebs: Tagging snapshot: snap-05a78f5ac7eeb30b6
  150. ==> amazon-ebs: Creating AMI tags
  151. amazon-ebs: Adding tag: "Name": "Kubernetes 1.6 node with GPU support"
  152. ==> amazon-ebs: Creating snapshot tags
  153. ==> amazon-ebs: Terminating the source AWS instance...
  154. ==> amazon-ebs: Cleaning up any extra volumes...
  155. ==> amazon-ebs: No volumes to clean up, skipping
  156. ==> amazon-ebs: Deleting temporary security group...
  157. ==> amazon-ebs: Deleting temporary keypair...
  158. Build 'amazon-ebs' finished.
  159. ==> Builds finished. The artifacts of successful builds are:
  160. --> amazon-ebs: AMIs were created:
  161. eu-central-1: ami-fe943391
  162. eu-west-1: ami-dac2dbbc
  163. eu-west-2: ami-e1485e85
  164. us-east-1: ami-4696bb50
  165. us-east-2: ami-7b8aac1e
  166. us-west-1: ami-b7173ad7
  167. us-west-2: ami-f7efe58e