想要在GCP上使用kubeadm搭建Kubernetes集群,用来平时使用,因此需要事先在GCP上创建几个虚拟机实例,用来部署集群。

创建虚拟机实例

首先登录GCP的控制台页面,如果没有项目,需要新建一个项目,这里项目示例为kubernetes-pytimer

新建项目后,选择该项目,进入信息中心,在左侧的导航菜单中,选择Compute Engine -> VM实例,刚进入页面的时候,如果是新注册的用户,需要等待初始化Compute Engine,这个时候页面的创建按钮是不可用的,等待初始化结束,按钮变亮后,即可创建虚拟机实例。

点击创建按钮或者上方工具栏的创建实例按钮。如图:创建实例

因为是要创建Kubernetes集群使用,而kubeadm在部署集群之前是对机器有要求的,需要至少2核CPU和2GB内存,具体的要求可以参考官方文档说明,因此需要在创建虚拟机实例的时候选择合适规格。

选择虚拟机实例规格的操作比较简单,不进行描述,因为第一台机器需要作为集群的control plane节点,后续也会部署自己的组件,因此磁盘空间选择稍微大些。

这里创建了两台虚拟机实例,等待一会,可以看到两台虚拟机创建完成,并且已经有了内部IP和临时外部IP。如图:vm实例列表

本地Mac或者Linux连接虚拟机实例

自己开发电脑如果想要连接远程虚拟机,我们知道都是使用ssh进行连接,默认GCP不允许直接使用root进行远程连接,我们需要使用登录的GCP账号作为虚拟机的用户名进行登录才可以。关于如何登录虚拟机实例,官方有相关的文档,不过稍微有些麻烦,因此在这里进行简单的描述。

我们在本地使用ssh-keygen生成ssh所需要的公钥和密钥,相关的操作,可以查阅

ssh-keygen -t rsa -f ~/.ssh/k8smaster1 -C <USERNAME>USERNAME是我们后面使用ssh登录机器的用户名,这样会生成两个文件,可以在~/.ssh看到如下:

$ ll ~/.ssh
total 24
-rw-------  1 pytimer  staff   1.8K  4 20 15:28 k8smaster1
-rw-r--r--  1 pytimer  staff   395B  4 20 15:28 k8smaster1.pub
-rw-r--r--  1 pytimer  staff   2.8K  4 20 13:19 known_hosts

查看k8smaster1.pub文件内容格式为: ssh-rsa <content> <USERNAME>,因为我们后面需要自己使用,因此当前制作密钥不设置过期时间。

接下来我们需要把ssh公钥在虚拟机实例上进行设置。具体的操作可以参考文档添加ssh-key到虚拟机实例

设置完成后,使用ssh -i ~/.ssh/k8smaster1 <USERNAME>@<IP>即可登录到虚拟机。

<IP>是虚拟机的外部IP。