当前位置:   article > 正文

Terraform + Vault 轻松构建Kubernetes 集群_terraform vault

terraform vault

本文主要介绍如果通过Terraform 和Vault 轻松构建Kubernetes 集群环境, 写作来源于 Kelsey Hightower 的Kubernetes The Hard Way, 主要介绍的是在Google Cloud上面的部署kubernetes过程,
在部署kubernets 环境的时候,相信大多数人都遇到过如下类似的问题:

  1. 证书创建过程繁琐
  2. 难以做到虚拟机创建过程标准化, 创建1,2 台开发环境手动可以搞,但是如果几十台,几百台如何来做呢
  3. 环境部署好之后,各个组件服务启动没有问题,但是无法使用
  4. 市面上各种kubernetes的安装部署工具,但是各个组建间是如何工作的, 通信关系,配置项具体什么含义无法理解

通过本次实验,可以加强对kubernetes 各个组件的关系会更加的深入了解

实验概述

通过Terraform 来在Mac OSX 宿主机的环境下批量创建以VirtualBox 为hypervisor的虚拟机, 同时利用了configdrive 来配置出来的虚拟机,主要是配置SSH 连接时需要的公钥。在基础环境准备结束之后,手动的配置各个服务组件来搭建kubernetes 集群环境。通过简单的案例,来测试kubernetes的功能

Cloud Init之Config Drive的创建

相信对于从事过云计算相关工作的人特别是IaaS的来说cloud-init 已经是非常的熟悉,我们看下官方的说法

Everything about cloud-init, a set of python scripts and utilities to make your cloud images be all they can be!

cloudinit 十分的强大,可以在机器启动之后对其进行再次的配置,举个例子,创建虚拟机都会有一个模版,其实就是(可能)预装了基础软件的仅包含操作系统的特殊的镜像文件,这些镜像文件会存储在镜像服务器当中,如果能够将其做的容量足够小,那么在存储镜像时占用的空间会尽可能的少,为了满足在批量通过镜像模版创建虚拟机时不同的需求,最主要的是磁盘的大小,譬如模版文件的磁盘容量是10G,但是有的客户想要200G的操作系统磁盘,怎么办呢? 这个时候就可以通过cloudinit结合hypervisor创建时给定的大的磁盘文件可以动态的对文件系统进行再次的空间划分,达到一个模版文件就可以批量创建统一操作系统类型,但是规格不同的虚拟机。
当然这只是cloudinit 一个基本的使用功能, 其它功能详情参见官方文档

回到我们的实验环境来,主要是通过confidrive的方式来加载到虚拟机中,在启动时cloudinit 通过读取configdrive 挂载到虚拟机内部后的配置文件进行虚拟机的再配置

$ mkdir configdrive

创建meta-data文件
$ touch configdrive/meta-data

创建user-data 文件, 根据实际情况修改ssh-authorized-keys
部分


$ cat > configdrive/user-data <<EOF                                                                                                              2.2.2   /Users/jiangytcn
heredoc> #cloud-config
groups:
  - cloud-users
system_info:
  default_user:
    name: default-user
    lock_passwd: true
    groups: cloud-users
    sudo: ["AL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/184883?site
推荐阅读
相关标签
  

闽ICP备14008679号