Terraform Aliyun 创建ecs, kubernetes 实例

本文涉及的产品
对象存储 OSS,20GB 3个月
公网NAT网关,每月750个小时 15CU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: terraform demo for aliyun 创建vpc, 网关, EIP, ecs, kubernetes, Serverless Kubernetes env : Terraform v0.12.28 provider.alicloud v1.92.0

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
弹性计算 Kubernetes 监控
【阿里云弹性计算】阿里云 ECS 与 Kubernetes 集成:轻松管理容器化应用
【5月更文挑战第28天】阿里云ECS与Kubernetes集成,打造强大容器管理平台,简化应用部署,实现弹性扩展和高效资源管理。通过Kubernetes声明式配置在ECS上快速部署,适用于微服务和大规模Web应用。结合监控服务确保安全与性能,未来将深化集成,满足更多业务需求,引领容器化应用管理新趋势。
260 2
|
6月前
|
弹性计算 运维 Kubernetes
云原生K8S场景自动化响应ECS系统事件
客户云原生K8S场景下,通过社区开源NPD+Draino+Autoscaler零开发,对接响应ECS主动运维事件,通过自动响应事件减少非预期宕机。
|
弹性计算 容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI相比ECS 的优势
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——ECI相比ECS 的优势自制脑图
117 1
|
Kubernetes Devops 关系型数据库
阿里云内部K8s、ECS、RDS、DevOps实战手册,超赞
有不少小伙伴,一直在后台问我要一些资料,同时,我也在想,其实大家谁都不缺资料,缺的是有实战价值,能够看了之后在实际的工作环境可以用起来的实战技术资料,而并非那些纸上谈兵的理论,所以。。。
|
弹性计算 网络协议 安全
aliyun服务器端口开启步骤
阿里云服务器端口怎么打开?云服务器ECS端口在安全组中开启,轻量应用服务器端口在防火墙中打开,阿里云服务器网以80端口为例,来详细说下阿里云服务器端口开放图文教程,其他的端口如8080、3306、443、1433也是同样的方法进行开启端口:
175 0
aliyun服务器端口开启步骤
|
存储 Kubernetes NoSQL
【公开课】手把手基于阿里云 ACK 环境创建 Kubernetes 集群及部署应用|学习笔记
快速学习【公开课】手把手基于阿里云 ACK 环境创建 Kubernetes 集群及部署应用。
948 0
【公开课】手把手基于阿里云 ACK 环境创建 Kubernetes 集群及部署应用|学习笔记
|
SQL Kubernetes 关系型数据库
阿里云 K8s 环境创建(上)|学习笔记
快速学习阿里云 K8s 环境创建(上)
阿里云 K8s 环境创建(上)|学习笔记
|
Kubernetes 监控 固态存储
阿里云 K8s 环境创建(下)|学习笔记
快速学习阿里云 K8s 环境创建(下)
阿里云 K8s 环境创建(下)|学习笔记
|
Kubernetes 应用服务中间件 nginx
K8S 集群核心概念 Service_通过资源清单文件创建 Service_NodePort | 学习笔记
快速学习 K8S 集群核心概念 Service_通过资源清单文件创建 Service_NodePort
194 0
K8S 集群核心概念  Service_通过资源清单文件创建 Service_NodePort | 学习笔记
|
Kubernetes 负载均衡 网络协议
K8S 集群核心概念 Service_通过资源清单文件创建 Service_ClusterIP | 学习笔记
快速学习 K8S 集群核心概念 Service_通过资源清单文件创建 Service_ClusterIP
169 0
K8S 集群核心概念 Service_通过资源清单文件创建 Service_ClusterIP | 学习笔记