GCP之路

kubernetes:GKE

在GKE上搭建

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

名词:

GCE:虚拟机,类似于EC2

IAM: aws用secret key和secret id 授信。gcp用iam

service account: 一种权限配置方式,创建时会自动生成并下载一个key的文件,通过这个文件即可

kms: gcp上的一个服务(feature),全程也叫key management service用于给内容加密和解密,使用大致方法是先生成一个key ring,生成一个key,拿着这个key,给内容加密或者解密,可以指定路径。

VPC,ROUTE,SUBNETS: VPC定义一个网段,route有两个关键的参数,destination(去哪里)和next hop(使用哪个通道),subnet定义vpc内的一个网段。可以定义多个subnets。nexthop可以设置https://cloud.google.com/vpc/docs/routes。这些都是定义了vpc内instance的出入口的行为。一个instance配了哪个subnet就会分给一个在这个网段的ip

loadbalancing:在network内创建的。用于外部访问

ingress:与service的区别:一个ip地址可以指向多个(在一个ingress的配置文件内进行配置不同的service对应的path,可以是相同的ip和端口,类似于tomcat下的各种应用)。类似一个入口。也是k8s的一个资源。自动匹配查找对应的service和pod的ip,ingress是在k8s内有一个ingress controller。通过这个controller来调节配置,这个controller是自带且自动启动的

loadbalancing: 在network下,有http/https,tcp,udp,也按照globle和internal区分。loadbalancing

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

搭建cli环境(SDK)并使用teraform操作:

1.安装google sdk:https://cloud.google.com/sdk/docs/downloads-yum,直接yum安装未必能安装成功,要么网络问题要么没有那个包,需要按照文档内配置一个yum的源

2.配置credential:采用service account(IAM下的service account可以找到,选中或者新增一个,每创建一个就会自动下载一个private key的json文件)的方式进行授权。具体方法:

命令:gcloud auth activate-service-account --key-file xxx.json即可;

或者配置个变量然后……

export GOOGLE_PROJECT=g-dso-ksc-cloudbees
export GOOGLE_CREDENTIALS=account.json

还要配置project

gcloud命令集:https://cloud.google.com/sdk/gcloud/reference/compute/networks/list

查看该key下的资源gcloud components list,一个基本的google命令行环境就搭建好了。

3.terraform: 授权的过程不必使用gcloud的方式,可以采用环境变量的方式

命令如下:export GOOGLE_CREDENTIALS=xx/xx/xx.json

GOOGLE_CREDENTIALS

4.tf文件,编写一个xxx.tf文件,里面写上provider,要执行的比如data或者resource命令。provider内可以配置project的id(注意是id),zone。这两个必备。zone在哪儿找?所要操作的资源会有一个zone的信息

5.terraform init,会下载provider需要的插件等。 但是不会生成一个state文件,即teraform.state

6.可以在tf内先创建一个data命令,只查看一个instance的信息

7.执行terraform plan即可查看到一个实例。但没有实例的具体信息

8.再次执行terraform state show,可以显示所有里面的资源的详细信息。

9.terraform show :显示所有的资源,区别是啥呢??

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

gcp命令:gcloud命令:

1.project相关:gcloud config list project(查看哪个项目),gcloud config set project <project-id>(设置项目)

gcp loadbalancer :https://www.cnblogs.com/devilwind/p/8891636.html 作用:请求访问lb的ip:port,这个请求会转给配置的instance进行处理,类似HA,只进不出,有tcp,udp,http等几种

vm绑定storage,mount,到主机上执行一个东东。也可以通过terraform

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

gke学习使用心得:

network就是vpc

以vault服务搭建为例:首先创建一个vpc,vpc下创建一个subnet,subnet配置了路由,k8s再使用这个vpc。这个时候的vpc的路由是给vpc和node的,不是给k8s的,暂时是这样的

网络:cluster 的Pod address range,这个ip是啥东东?

有几个ip:

service ip:十分重要的一个ip,访问的出入口,cluster可以定义service的网段,然后每个service就会在这个网段内被分配一个ip,在service内点进去,可以看见一个cluster ip,可以看见这个cluster ip 就在那个网段内。而且是一个具体的ip。这个ip很重要

cluster ip:见service ip

pod ip:生成一个pod就会随机分配一个ip,这个ip随机生成,pod消亡就没了,依托于node。但是网段也不同于node

node ip:衍生自vpc ip,所以vpc的网段定义为啥,这个ip就在哪个网段内。只要能访问该网段,就一定能访问这个ip

container ip:分配自docker,具体不怎么用,因为随机

关于gke上ip的几点看法:

1.cluster重要的是service的网段,而不是pod(也可以理解是pod),指定pod就指定了所有的service都可以访问,指定service的网段,就只能局限于某个service。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

terraform实战坑:

当指定了terraform 的backend,但是仍需要手动到gcp上的storage创建对应的层级目录,唯独哪个state文件不需要

猜你喜欢

转载自blog.csdn.net/davidliuzkw/article/details/86246561
gcp
今日推荐