赞
踩
本文主要介绍如果通过Terraform 和Vault 轻松构建Kubernetes 集群环境, 写作来源于 Kelsey Hightower 的Kubernetes The Hard Way, 主要介绍的是在Google Cloud上面的部署kubernetes过程,
在部署kubernets 环境的时候,相信大多数人都遇到过如下类似的问题:
通过本次实验,可以加强对kubernetes 各个组件的关系会更加的深入了解
通过Terraform 来在Mac OSX 宿主机的环境下批量创建以VirtualBox 为hypervisor的虚拟机, 同时利用了configdrive 来配置出来的虚拟机,主要是配置SSH 连接时需要的公钥。在基础环境准备结束之后,手动的配置各个服务组件来搭建kubernetes 集群环境。通过简单的案例,来测试kubernetes的功能
相信对于从事过云计算相关工作的人特别是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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。