谷歌云平台SDK的使用
前言
因为谷歌云平台SDK内容丰富,功能强大,不可能一篇文章就介绍完。
在这里只做一个索引。介绍实用功能,常用参数的使用。
更多更详细的说明,还是看官方文档。
如何安装
工具是用python写的,支持全平台。
平台自己创建的linux虚机是默认安装好了的。
如果是google的服务器,可直接看如何配置。
windows平台
运行
1 |
|
Debian and Ubuntu ( apt-get 方式 )
创建环境变量
1 |
|
增加Cloud SDK 的地址到源中
1 |
|
导入Google Cloud 的公钥
1 |
|
更新和安装Cloud SDK
1 |
|
如何配置
它一是套SDK,用API的方式来操作云端资源,采取了用OAuth方式来拿到google账号的权限。
运行
1 |
|
会需要认证,按提示操作。
基本过程:
- 选择账号
- 选择项目
- 选择默认区域(可选)
配置好之后,可通过gcloud info
来查看相关信息
常用功能
这里只介绍创建虚拟机,查看虚拟机,配置基本操作
创建虚拟机
运行
1 |
|
该命令会按默认参数创建一台虚拟机。执行结果如下:
1 |
|
几个常见的配置
- 指定区域
--zone=asia-east1-b
,通过gcloud compute zones list
可以查看列表。也可以通过gcloud config set compute/zone ZONE
来设置默认区域 - 指定机器类型
--machine-type=f1-micro
,可以在Machine Types 看到所有的机器类型,不同类型收费不同。也可以用gcloud compute machine-types list
来查看 - 指定镜像工程
--image-project=ubuntu-os-cloud
,可以通过gcloud compute images list
查看所有的官方镜像列表。其中的PROJECT
列,是指定该参数。 - 指定镜像名
--image=ubuntu-1710-artful-v20171017
- 指定标签
--tags=allow-http
,这是用来设置应用的防火墙规则的。比如在防火墙配置中增加一条规则标签为A,则当创建虚拟机时指定标签A,则应用A标签中的规则。可以应用多个标签。很灵活的配置虚拟机防火墙规则。
高级配置
- 使用
--async
来异步的创建。这样就不用等待创建完成才返回。 - 使用
--metadata-from-file
来配置启动脚本--metadata-from-file startup-script=/home/ff/install.sh
,install.sh为本地文件系统中的文件。
创建一个典型的虚拟机
1 |
|
ubuntu 16.4的机器
1 |
|
连接到机器上
创建好之后,可能想连上去看下情况。
可以运行
1 |
|
该命令会在本机上生成一对公钥(如果没有的话)
并在.ssh/config
中配置相关参数据
把公钥拷贝到远程机器的authorized_keys的中。
就可以通过公钥验证的方式,访问刚创建的机器。
然后用
1 |
|
就可以连接上
查看虚拟机
查看虚拟机列表
1 |
|
查看虚拟机详细信息
1 |
|
删除
1 |
|
增加虚拟机标签
这可以增加防火墙规则时使用
1 |
|
防火墙的设置
查看规则
1 |
|
以指定格式查看,就是要查看tag。
1 |
|
创建防火墙规则
1 |
|
这里要说两个参数
A list of instance tags indicating which instances the rule is applied to.
--target-tags
实例的标签列表,来指定哪个实例应用这个规则。比如在创建实例时,会有--tags
参数可选,这个参数指定了allowhttp
标签,则实例应用上面规则允许80端口的连接。A list of instance tags indicating which instances the rule is applied to.
--source-tags
实例的标签列表指定网络标签。如果--source-ranges
和--source-tags
都没有指定,则默认为0.0.0.0/0
表示所有入口网络。A list of instance tags indicating the set of instances on the network to which the rule applies if all other fields match.
切换工程
每个命令都会接收全局的参数,可以使用--project <projectname>
来指定工程。
如查要切换默认工程
使用
1 |
|
可能会遇到的问题
帐号没权限或者没设置帐号
1 |
|
需要启用api
1 |
|
镜像找不到
1 |
|
定位镜像,要通过镜像工程名和镜像名来指定。--image-project
是指定的镜像工程,如果不指定,将会当前工程。
但如果我们使用的是系统提供的镜像。
就需要指定--image-project
,比如ubuntu-os-cloud
通过gcloud compute images list
可以列出。