Terraform + Vault 轻松构建Kubernetes 集群

本文介绍了如何借助Terraform和Vault轻松地在Mac OSX的VirtualBox环境中创建Kubernetes集群。通过Cloud Init的Config Drive配置SSH连接,然后利用Terraform模板文件定义基础设施资源,创建虚拟机。Vault用于简化证书创建过程。此外,还涵盖了Kubernetes服务配置、自签名证书的容器镜像服务器安装和滚动升级等步骤。
摘要由CSDN通过智能技术生成

本文主要介绍如果通过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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值