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. 【赵渝强老师】Oracle的PGA与数据库连接建立的过程

    首先,我们来了解一下Oracle的内存结构,如下: 关于Oracle的内存结构,详情请查看:[赵强老师]Oracle数据库的内存结构 (一)PGA的组成结构 PGA主要由以下三部分组成: 私有SQL区 ...

  2. excel江湖异闻录--渣渣

    有朋友问过我,为什么要写这些,细细思量,一来我喜欢这个纯粹的江湖,二则向这些纯粹的高手.大神致敬,三是纪念一下自己学习EXCEL的历程. 其实,每一个篇章都有一个逻辑,只不过这个逻辑,不是按照实力的高 ...

  3. USB Type-C的工作原理与技术分析

    USB TYPE-C更加深入的应用,是从USB3.1开始的,这是因为从USB3.1开始,USB的功能开始变得更加丰富起来. USB 3.1基本规格 有SS字样的代表支持PD,有SS和10的USB标志代 ...

  4. iOS关于搜索不规则瀑布流布局的实现小结

    最近在项目开发中遇到了不规则搜索布局的问题.之前常用的解决方案是用一个tableview用一个循环动态的加载,唯一的缺点是需要动态的移除,其实也已经足够.https://download.csdn.n ...

  5. 大数据技术之Shell

    1. shell概述 示意图: Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序. ● L ...

  6. KubeSphere 社区双周报|2024.02.29-03.14

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  7. Cloth Simulation with Root Finding and Optimization

    目录 0 前言 1 Implicit Method 1.1 Root-finding 1.2 Optimization 1.3 Insight 2 Newton-Raphson Method 3 Ma ...

  8. uniapp、nativeJS、H5+退出APP应用(IOS+安卓)

    uniapp.nativeJS.H5+退出APP应用(IOS+安卓)阅读原文:https://mp.weixin.qq.com/s/Aru-DCcSHrNcuxJ6Q94QLQ直接扫码进入此链接可阅读 ...

  9. OpenCV3 图像处理笔记

    此笔记针对 Python 版本的 opencv3,c++ 版本的函数和 python 版本的函数参数几乎一样,只是矩阵格式从 ndarray 类型变成适合 c++ 的 mat 模板类型.注意,因为 p ...

  10. (待续) 强化学习——如何提升样本效率 ( DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!)

    强化学习     如何提升样本效率 参考文章: https://news.html5.qq.com/article?ch=901201&tabId=0&tagId=0&docI ...