使用 kubeadm 在 GCP 部署 Kubernetes

如题所述

第1个回答  2022-06-26

最近在准备 CKA 考试,所以需要搭建一个 Kubernetes 集群来方便练习.GCP 平台新用户注册送 300 刀体验金,所以就想到用 kubeadm 在 GCP 弄个练练手,既方便又省钱.

这一套做下来,还是比较容易上手的,kubeadm 提供的是傻瓜式的安装体验,所以难度主要还是在科学上网和熟悉 GCP 的命令上,接下来就详细记述一下如何操作.

接下来的操作都假设已经设置好了科学上网,由于政策原因,具体做法请自行搜索;而且已经注册好了 GCP 账户,链接如下: GCP

首先需要在本地电脑上安装 GCP 命令行客户端:gcloud,参考链接为: gcloud

因为众所周知的原因,gcloud 要能正常使用,要设置代理才可以,下面是设置 SOCKS5 代理的命令:

如果是第一次使用 GCP,需要先进行初始化.在初始化的过程中会有几次交互,使用默认选项即可.由于之前已经设置了代理,网络代理相关部分就可以跳过了.
注意 :在选择 region(区域)时,建议选择 us-west2,原因是目前大部分 GCP 的 region,体验用户只能最多创建四个虚拟机实例,只有少数几个区域可以创建六个,其中就包括 us-west2 ,正常来讲,搭建 Kubernetes 需要三个 master,三个 worker,四个不太够用,当然如果只是试试的话,两个节点,一主一从,也够用了.

接下来创建 Kuernetes 所需的 GCP 资源.

第一步是创建网络和子网.

接下来要创建防火墙规则,配置哪些端口是可以开放访问的.一共两条规则,一个外网,一个内网.
外网规则只需要开放 ssh, ping 和 kube-api 的访问就足够了:

内网规则设置好 GCP 虚拟机网段和后面 pod 的网段可以互相访问即可,因为后面会使用 calico 作为网络插件,所以只开放 TCP, UDP 和 ICMP 是不够的,还需要开放 BGP,但 GCP 的防火墙规则中没哟 BGP 选项,所以放开全部协议的互通.

最后创建 GCP 虚拟机实例.

使用 gcloud 登录 controller-1

安装 kubeadm, docker, kubelet, kubectl.

kubeadm 初始化

配置 calico 网络插件

配置 kubectl 的 bash 自动补全.

这里偷懒了一下,从节点安装的包和主节点一模一样,大家可以根据需求,去掉一些不必要的包.

如果此时 kubeadm init 命令中的 join 命令找不到了,或者 bootstrap token 过期了,该怎么办呢,下面就是解决方法.

最后执行 kubeadm join 命令.

相似回答
大家正在搜