Terraform Aliyun 创建ecs, kubernetes 实例

terraform demo for aliyun

创建vpc, 网关, EIP, ecs, kubernetes, Serverless Kubernetes

env :

Terraform v0.12.28

provider.alicloud v1.92.0

By Elvin ,2020-8-23, http://blog.elvin.vip

git source https://gitee.com/alivv/terraform-aliyun.git


#环境准备

#aliyun cli
#下载和安装 download and install
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -zxf aliyun-cli-linux-latest-amd64.tgz -C /usr/local/bin/ #配置认证 config AccessKey,SecretKey,Region
aliyun configure --profile default #list config 列出配置
aliyun configure list --profile default # --profile 配置名,用于管理多配置,默认名称default

阿里云帮助文档 aliyun help doc

https://help.aliyun.com/document_detail/121541.html

https://help.aliyun.com/document_detail/121198.html

#terraform
#download and install
wget http://files.elvin.vip/cli/terraform_0.12.28_linux_amd64.zip
unzip -oq terraform_0.12.28_linux_amd64.zip -d /usr/local/bin/
#provider-alicloud
wget http://files.elvin.vip/cli/terraform-provider-alicloud_1.92.0_linux_amd64.zip
mkdir -p ~/.terraform.d/plugins
unzip -oq terraform-provider-alicloud_1.92.0_linux_amd64.zip -d ~/.terraform.d/plugins/ #provider资源下载保存到terraform相同目录,或~/.terraform.d/plugins/
#避免terraform init初始化时每个目录自动下载provider而耗时 !!!

官网 download url

https://releases.hashicorp.com/terraform/

https://releases.hashicorp.com/terraform-provider-alicloud/

#clone demo source
git clone https://gitee.com/alivv/terraform-aliyun.git /opt/

#创建OSS

cd /opt/terraform-aliyun/modules/oss/

#初始化
terraform init #执行计划
terraform plan #创建资源(等待输入yes)
terraform apply
#创建oss资源 实例
resource "alicloud_oss_bucket" "terraform-elvin" {
bucket = "terraform-elvin"
#bucket名称已存在会创建失败
acl = "private"
tags = {
"Terraform" = "true"
}
versioning {
status = "Enabled"
}
} #使用oss存储Terraform Backend状态文件(不配置默认本地)
#后面实例需要修改backend.tf文件bucket对应名称

#创建VPC, vswitch, EIP, nat gateway, security_group

#网络参考于xxx生产环境简化版, 三个网段demo, prod, k8s, 六个可用区a,b,c,d,e,f
#内部服务实例不绑定公网IP,网络出口使用NAT网关
# 实例 -> vswitch -> nat gateway -> EIP(snat) -> Internet cd /opt/terraform-aliyun/modules/network terraform init
terraform plan
terraform apply #销毁
#terraform destroy #注意, 不要反复创建网络资源
#aliyun nat网关最低按12元/天,其它按小时

#创建一个ECS实例作为跳板机

#使用已有网络创建bastion(VM),并绑定EIP,作为跳板机

cd /opt/terraform-aliyun/bastion
terraform init #根据workspace使用demo网段
terraform workspace new demo
terraform workspace select demo
terraform workspace list terraform apply

#创建Aliyun Serverless Kubernetes

#Serverless集群不创建k8s master和node节点,按POD资源收费,和适合测试或运行小应用
cd /opt/terraform-aliyun/k8s-serverless
terraform init
terraform plan
terraform apply
#创建完成后,查看web控制台.kube/config配置,在bastion使用(没配置公网IP, 使用内网IP访问)

#创建Aliyun Kubernetes 托管版

#aliyun Kubernetes 托管版,只有work节点, master节点使用托管(共享资源,资源隔离)
cd /opt/terraform-aliyun/k8s-node
#根据需要更改实例规格和节点数量
terraform init
terraform apply

#创建Aliyun Kubernetes 标准版

#配置实例为3个master节点, 2个work节点
cd /opt/terraform-aliyun/kubernetes-cluster
terraform init
terraform plan
#master节点创建成功, work节点失败,多次创建失败 ...

更多详情,查看git仓库 https://gitee.com/alivv/terraform-aliyun.git

#创建pvc的outpouts

Terraform Aliyun 创建ecs, kubernetes 实例的更多相关文章

  1. 工厂模式,根据ID创建对应的实例类

    工厂模式,根据ID创建对应的实例类 // // main.cpp // TestCPP1 // // Created by bianchx on 15/4/27. // Copyright (c) 2 ...

  2. C# 利用反射根据类名创建类的实例对象

    “反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): ...

  3. 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

    内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...

  4. C# WinForm 单例模式(例:同一个窗体只创建一次实例)

    //C# WinForm 单例模式(例:同一个窗体只创建一次实例) //打开窗体的事件: Form3 f = Form3.InstanceObject() ; //实例化窗体 f.Focus(); / ...

  5. Asp.Net MVC是否针对每次请求都重新创建一个控制器实例

    一.Asp.Net MVC是否针对每次请求都重新创建一个控制器实例 默认情况下,答案是确定的. ControllerBuilder类 ControllerBuilder.Current用户获取默认的控 ...

  6. 于快速创建 IEqualityComparer<T> 实例的类 Equality<T>

    于快速创建 IEqualityComparer<T> 实例的类 Equality<T> 原文中的 Equality<T> 实现如下: 1 2 3 4 5 6 7 8 ...

  7. Java JVM 请别拿“String s=new String("z");创建了多少实例”来面试 [ 转载 ]

    Java 请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧 [ 转载 ] @author RednaxelaFX 原文链 ...

  8. 老李分享:Robotium创建Note的实例

    老李分享:Robotium创建Note的实例   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...

  9. C#如何根据类的名词创建类的实例

    这个大概分为两种情况:1-在同一程序集访问该类:2-在不同的程序集访问 A:同一程序集,使用微软的创建对象的类:System.Activator: 先通过类名,获取到类型,在使用用于创建本地或远程对象 ...

  10. Terraform:创建 Azure 虚机

    笔者在前文<Terraform 简介>中简单介绍了 Terraform 相关的概念,本文让我们使用 Terraform 在 Azure 上创建一个虚机,以此来直观体验一下 Terrafor ...

随机推荐

  1. Java日期时间API系列26-----Jdk8中java.time包中的新的日期时间API类,YearMonth类的源码,转换和应用。

    Java8中为年月新增了类YearMonth,可以用来表示卡片过期时间等问题. 1.YearMonth 默认格式为:2007-12 1.1 部分源码 * * @implSpec * This clas ...

  2. 激活windows教程

    新建bat文件 [批处理文件:后缀是 bat ] 输入代码: slmgr/skms kms.03k.org slmgr/ato 然后以管理员运行 :

  3. mysql外联数据库

  4. 00 你想要学习的 AI+Python,捷径在这里

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  5. 工作使用:Exchange命令集(超级重要)

    工作使用:Exchange命令集(超级重要) 命令1:导出某个用户的邮件                  New-MailboxExportRequest   -mailbox  dusonglin ...

  6. 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(3)

    1.问题描述: compatibleSdkVersion升级到5.0.0(12)之后,调用坐标系转换API:map.convertCoordinate(mapCommon.CoordinateType ...

  7. vscode+码云(gitee),用git进行源代码管理

    使用原因 对于我们经常换电脑来工作的人群,在公司工作完,回家里再用U盘或网盘复制/下载我们的代码,简直是一种折磨,一个项目中断后,时间久了再去想继续的时候,你会发现:到底哪个是最新版的?!U盘满了,这 ...

  8. DRF-Serializers序列化器组件源码分析及改编

    1. 源码分析 注意:以下代码片段为方便理解已进行简化,只保留了与序列化功能相关的代码 序列化的源码中涉及到了元类的概念,我在这里简单说明一下:元类(metaclass)是一个高级概念,用于定义类的创 ...

  9. Go服务自动触发单元测试覆盖率

    一.用到的工具 Gitlab Jenkins Shell go test 二.实现原理 在gitlab上配置jenkins的webhook,当有代码变更时自动触发jenkins构建job,job内的s ...

  10. 基于Java+SpringBoot心理测评心理测试系统功能实现七

    一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...