在Google cloud上创建VM虚拟机

news2024/11/28 4:45:40

登录GCP console,确保Compute Enginee API 已经被eanbled

在左边菜单栏,选择第一个item - VM instance
在这里插入图片描述
如果见到上面页面, 则代表compute enginee的API 已经被enabled, 否则要先enable Compute enginee的API.

后者从APIs & Service 页面去检查已经enabled的APIs
在这里插入图片描述




创建1个VPC

其实所有的VM都需要1个内网ip, 但是首先我们需要1个VPC先。
虽然VPC 全名是Virtual Private Cloud, 但是我们可以理解它就是1个虚拟局域网, 虚拟内网。

我们进入VPC network的页面,并点击button “CREATE VPC Network”
在这里插入图片描述
那么我们就进入VPC network创建的页面
在这里插入图片描述
我们接下里解析一些细节:

Maximum transmission unit (MTU)

最大传输单元(MTU)是指在网络通信中可以传输的最大数据包大小。它是以字节为单位来衡量的,包括数据包的有效载荷和头部信息。
当数据包从源主机发送到目标主机时,它们会被分割成更小的片段进行传输。MTU定义了每个片段的最大大小。如果数据包的大小超过了网络路径上的任何设备或链路的MTU,那么它将被分割成更小的片段以适应MTU的限制。
在一些情况下,你可能需要调整MTU的大小。例如,当使用虚拟专用网络(VPN)时,VPN隧道的头部信息会增加数据包的大小,可能导致超过某些网络设备或链路的MTU。在这种情况下,你可能需要降低MTU的大小,以确保数据包能够成功传输。
关于收费的问题,通常来说,调整MTU的大小不会直接导致额外的费用。然而,如果你需要使用特定的网络服务或功能来支持更大的MTU,可能会涉及到额外的费用。例如,某些云服务提供商可能会为支持更大的MTU大小而收取额外的费用。因此,在调整MTU大小之前,建议你查看相关的服务提供商文档或与他们联系,以了解是否会有额外的费用或限制。

我们保持默认值 1460 就好

VPC network ULA internal IPv6 range

这个选项是用来指定在VPC网络中分配内部IPv6地址时使用的ULA地址范围。你可以在创建VPC网络时设置这个选项,以定义你希望在VPC网络中使用的特定IPv6地址范围。
在创建VPC网络时,你可以选择启用IPv6,并指定一个ULA地址范围。这样,GCP会为你的VPC网络分配一个内部IPv6地址范围,以供你在网络中分配给内部资源。

除非你有ipv6的使用需求, 否则保持disabled就好







创建1个VPC subnet

在创建VPC页面, 我们应该要同时创建1个subnet
在这里插入图片描述

当然你可以选择Automatic, 这样GCP 会自动分配1个subnet,到这个VPC上.
如果把 VPC 当左1个大的内网, 那么subnet就是这个内网的一些子网, 而子网最重要的就是ip地址范围。 当我们点击Add Subnet button就可见到下面的创建子网页面
在这里插入图片描述






region 区域

这个很重要, 每个子网必须属于1个region, 而后面的resource 例如VM自能选择相同区域的子网。
举个例子, 假如我选择在HK创建1个VM, 那么这个VM必须选择1个HK region的子网。

上面的例子我选择了eurepo-west2 , 那么代表这个子网是属于伦敦的.



IPv4 Range

这个就是子网的重点, 意思就是ipv4 地址的范围
上面我写到是 192.168.1.0/24
意思就是这个子网
从192.168.0.1 开始, 从192.168.0.255 结束, 简单来讲就是可以分配 254个虚拟机到这个子网.

而192.168.0.1 必须用于gateway , 192.168.0.255 用于广播, 这两个ip是不能被分配给其他resources的
具体子网掩码的换算可以参考
https://www.sojson.com/convert/subnetmask.html



Private Google Access

用于控制子网中的实例是否可以通过内部IP地址访问Google服务,而无需通过公共Internet连接。
当你启用"Private Google Access"选项时,子网中的实例可以使用内部IP地址直接访问Google服务,例如Google Cloud Storage、Google BigQuery等,而无需通过公共Internet连接。这提供了一种更安全和高效的方式来访问Google服务,特别是在需要保护数据隐私或限制公共Internet访问的情况下。
需要注意的是,启用"Private Google Access"选项只适用于子网内的实例,对于子网之外的实例仍然需要通过公共Internet连接来访问Google服务。

简单来讲也可以让子网下的resource可以通过GCP内网而不是公网去连接 GCP的其他产品(BQ, bucket等), 走内网的好处是
1,更快
2,更安全
3,公网流量更低, 更便宜

所以一般选择ON

配置VPC network的firewall rules

在这里插入图片描述
其实你不知道怎么配置的话,保持默认就好

Firewall 这里配置是 公网和这个VPN network的出入口规则
allow-custom 表示 允许用户自定义防火墙规则, 不要动它
allow-icmp 也不要动它, 否则会影响一些网络工具的使用, 例如ping等
allow-rdp 3389 这里 表示允许rdp 3389协议的接入, rdp协议就是远程桌面的协议, 适用于both windows 和linux, 如果你确定你这个子网下的所有VM都不需要远程桌面接入, 可以禁掉它
allow-ssh 22 , 这里就是允许外部主机ssh登录VPC network的主机啦, 务必打开

至于下面的 deny all ingress 就是默认是禁止所有外部主机访问的, 但是因为上面allow-ssh 的优先级别更高, 所以22端口还是开通的。 假如 之后我们要开启web服务, 则需要把80和443端口打开, 就是新镇1个规则, 但是优先级必须在deny all ingress 之前

allow-all-egress 就是表明vm内的resource是无限制访问外网的, 如果需要禁止访问外网, 则需要把这个规则改掉

Dynamic routing mode

如果你的网络环境是多区域的,并且你希望在每个区域内具有更细粒度的控制,那么选择 Regional dynamic routing mode 可能更合适。这样,你可以针对每个区域设置特定的路由策略,并根据需要进行定制。这种方式可以提供更灵活的网络配置和管理。
另一方面,如果你的网络环境是全局性的,并且你希望在整个项目中使用统一的路由策略,那么选择 Global dynamic routing mode 可能更合适。这样,你可以使用单个路由策略来管理整个项目中的所有区域,简化了配置和管理的复杂性。
需要考虑的因素还包括网络规模、复杂性和管理成本。如果你的网络规模较小且相对简单,那么选择 Regional dynamic routing mode 可能更加适合。如果你的网络规模较大且跨多个区域,那么选择 Global dynamic routing mode 可能更具优势。

我建议选择regional就好






切换到Compute enginee 页面, 在VM instance的子页面,点解create VM instance button

这样我们就见到了 下面 的页面

在这里插入图片描述






选择region

在这里插入图片描述
因为我的账号的是公司给员工买的学习账号, 只有两个regions 选择 我这里就选了europe-west2

如果是自己购买的账号, 建议选择香港或者台湾, 网络速度会更快。





选择vm 的规格

如果没有特别需求的话,选择E2 (最便宜)的机型就好, 如果你要使用显卡计算, 可以选择GPUs的机型, 如果是大规模并行作业, 建议选择AMD EPYC 的机型.

下面我选了E2 4核16GB的 , 价格是$127 一个月, 美金哦, 相信香港台湾的机器会便宜一点。
在这里插入图片描述

Availability policies

Standard(标准):选择这个选项意味着你的虚拟机实例将以正常的定价和可用性模式运行。这是一种常规的可用性策略,适用于大多数工作负载和应用程序。
Spot(抢占式):选择这个选项意味着你的虚拟机实例将以抢占式定价模式运行。抢占式实例的定价较低,但可能会在资源需求高时被其他用户的正常实例抢占。这种策略适用于对可用性要求较低的工作负载,例如批处理作业或测试环境。

如果是生产用的服务器请选择 standard, 否则选择Spot 可以节省3分之二的费用

Display device

Enable to use screen capturing and recording tools.
如果你需要跑 selenium 等自动化UI测试, 则需要启用这个选项




一些杂项

Confidential VM service

Confidential VM service(保密虚拟机服务)是Google Cloud Platform(GCP)提供的一项安全功能,旨在保护敏感数据免受恶意软件和特权用户的访问。
Confidential VM service 使用了硬件级别的内存加密技术,称为Intel Software Guard Extensions(SGX),以保护虚拟机中的敏感数据。SGX技术通过将敏感数据存储在加密的内存区域中,确保只有经过验证的代码可以访问和处理这些数据。

我觉得是多9余 的东西, 而且只有部分intel机型可以启用. 建议不要启用

Container

如果你想马上部署某个docker 容器在内, 可以配置这个选项, 当然后面再配置docker也可以的




配置启动盘

默认10GB, 我这里改到了100GB, 有特殊需求(例如大量日志写入)可以选择ssd
但是后面可以继续添加磁盘的
在这里插入图片描述




配置service account

一般来讲, 一台VM需要绑定1个service account, 这样这个VM不需要其他任何配置就可以用这个service account去访问其他GCP资源, 具体权限就看这个service account的权限了, 个人建议实现create 1个 vm-common的service account for 所有的vm, 如果不配置, 默认下会为这个VM创建1个新的service account, 具体怎么配置看需求了

在这里插入图片描述




配置VM级别firewall

上面说到了, VPC network 本身有firewall 设置, 但是这里配置的是VM级别的firewall
在这里插入图片描述

enable http 和 https 就好




一些高级设定

在这里插入图片描述

Networking

重点来了, 这里就是配置VM网络的地方

Network tag:
如果你没有大量的vm需要管理,可以留空

Hostname:
这里就是配置hostname的地方, 留空让它取默认值也可以的
在这里插入图片描述
IP forwarding:
如果你的vm要作为Nat gateway使用, 则要enable这个ip 选项
具体关于什么是 ip 转发请参考
https://openvpn.net/faq/what-is-and-how-do-i-enable-ip-forwarding-on-linux/

Network interfaces

这里就是配置VPC network 和subnet的地方了, 必须选1个
在这里插入图片描述

Disks

在这里插入图片描述
这里可以添加额外挂载的磁盘

Security

这里就是配置登录的地方
在这里插入图片描述
强烈建议把你local 电脑的public key 加上去
在这里插入图片描述
那么初始化后你就可以在本地免密码登录它了, 然后再设置账号密码让其他人登录




初始化VM 并获得external ip

接下来我们就可以按create button了
在这里插入图片描述
然后在本地尝试登录:

> ssh 34.147.158.1
The authenticity of host '34.147.158.1 (34.147.158.1)' can't be established.
ED25519 key fingerprint is SHA256:ZmOJwYYLwxKHIgBwLOv9Pvm9ClWYIblZmnJb7e3prFk.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '34.147.158.1' (ED25519) to the list of known hosts.
Linux instance-2 5.10.0-26-cloud-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
gateman@instance-2:~$ free
               total        used        free      shared  buff/cache   available
Mem:        16392448      144088    16082020         388      166340    15995908
Swap:              0           0           0
gateman@instance-2:~$ 

就是这么简单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Eclipse】取消按空格自动补全,以及出现没有src的解决办法

【Eclipse】设置自动提示 教程 根据上方链接,我们已经知道如何设置Eclipse的自动补全功能了,但是有时候敲变量名的时候按空格,本意是操作习惯,不需要自动补全,但是它却给我们自动补全了,这就造成了困扰&…

14.7 Socket 循环结构体传输

在上述内容中笔者通过一个简单的案例给大家介绍了在套接字编程中如何传递结构体数据,本章将继续延申结构体传输,在某些时候例如我们需要传输一些当前系统的进程列表信息,或者是当前主机中的目录文件,此时就需要使用循环结构体传输…

C++ 引用()的超详细解析(小白必看系列)

目录 一、前言 二、引用的概念介绍 三、引用的五大特性 💦 引用在定义时必须初始化 💦 一个变量可以有多个引用 💦 一个引用可以继续有引用 💦 引用一旦引用一个实体,再不能引用其他实体 💦 可以对任何…

02-spring源码概述-debug流程

文章目录 1. 两个主要ApplicationContext的类继承结构图1.1 ClassPathXmlApplicationContext1.2 ClassPathXmlApplicationContext 2. DefaultListableBeanFactory类继承结构图 1. 两个主要ApplicationContext的类继承结构图 1.1 ClassPathXmlApplicationContext 1.2 ClassPath…

基于SSM的旅游景点管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结

目录 limit 优化 count 优化 概述 count用法 update 优化 SQL优化 小结 limit 优化 在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。 当在进行分页查询时,如果执行limit 2000000,1…

11 | JpaRepository 如何自定义

EntityManager 介绍 Java Persistence API 规定,操作数据库实体必须要通过 EntityManager 进行,而我们前面看到了所有的 Repository 在 JPA 里面的实现类是 SimpleJpaRepository,它在真正操作实体的时候都是调用 EntityManager 里面的方法。…

Java中的正则表达式

1、体验正则表达式 import java.util.regex.Matcher; import java.util.regex.Pattern;/*** Description: 体验正则表达式:提取英文单词* Author: yangyongbing* CreateTime: 2023/10/16 08:38* Version: 1.0*/ public class Regexp {public static void main(String[] args)…

【Bug】ERROR ResizeObserver loop completed with undelivered notifications.

【Bug】ERROR ResizeObserver loop completed with undelivered notifications. 报错如下: ERROR ResizeObserver loop completed with undelivered notifications.at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299…

Qt 视口和窗口的区别

视口和窗口 绘图设备的物理坐标是基本的坐标系,通过QPainter的平移、旋转等变换可以得到更容易操作的逻辑坐标 为了实现更方便的坐标,QPainter还提供了视口(Viewport)和窗口(Window)坐标系,通过QPainter内部的坐标变换矩阵自动转换为绘图设…

802.1x协议详解,802协议工作原理/认证过程、MAB认证、EAP报文格式

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 802.1x协议 1、什么是802.1x协议2、802.1x架构3、触…

【LeetCode热题100】-- 45.跳跃游戏II

45.跳跃游戏II 方法:贪心 在具体的实现中,维护当前能够到达的最大下标的位置,记为边界。从左到右遍历数组,到达边界时,更新边界并将跳跃次数加一 在遍历数组时,不访问最后一个元素,因为在访问…

命令的历史管理

查看历史命令 cat ~/.bash_history history 清除历史命令 history -c >~/.bash_history 指定命令清除历史命令 history -d 55 vim /etc/profile 修改source /etc/profile (保存修改内容)

麒零8000S到底是7纳米还是14纳米?一切都因台积电玩坏了工艺命名

日本分析机构在拆解了国产5G手机对5G芯片进行扫描后,认为它的工艺只有14纳米,而一些专家则认为这是7纳米,导致如此混乱的原因在于台积电玩坏了芯片工艺的命名规则。 在16纳米之前,芯片制造企业是以栅极间距来认定芯片工艺的&#…

车联网场景中 JT/T 808 协议终端免开发快速接入阿里云 IoT 物联网平台实战

车联网场景中 JT/T 808协议 是一种在中国广泛应用的车载终端通信协议,用于车辆与监控中心之间的数据通信。 01 JT/T808 协议 JT/T808 协议是指交通部颁布的《道路运输车辆卫星定位系统终端通讯协议及数据格式》,广泛应用于车辆远程监管、物流管理、车辆安…

基于SpringBoot+vue的汽车销售管理系统

文章目录 项目介绍主要功能截图:登录首页新订单客户管理添加库存车辆库存管理报表管理员工管理 部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简…

LLM Tech Map 大模型技术图谱

LLM Tech Map 大模型技术图谱 从基础设施、大模型、Agent、AI 编程、工具和平台,以及算力几个方面,为开发者整理了当前 LLM 中最为热门和硬核的技术领域以及相关的软件产品和开源项目。 核心价值:帮助技术人快速了解 LLM 的核心技术和关键方向…

Java毕业设计基于springboot+vue的影视信息网站

项目介绍 影城管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台:首页、电影信息、电影资讯、个人中心…

块链串的实现(c语言)

串有三种三种顺序串,链式串和块链式串 常用的是第一种顺序串 前两者我在这就不进行讲解了,因为就是普通的顺序表和链式表只是其中的值必须是字符而已 为啥需要引入块链式串,我们之前分析过链表的优点是操作方便,而缺点是&#x…

USB协议学习(一)帧格式以及协议抓取

USB协议学习(一)帧格式以及协议抓取 笔者来聊聊MPU的理解 这里写自定义目录标题 USB协议学习(一)帧格式以及协议抓取MPU的概念以及作用MPU的配置新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式…