本篇文章主要介绍:
- 对测试环境的要求
- 介绍一下我的测试环境都有哪些设备,
- 分享一下我在学习中是如何测试的。
1、网盘资源 |
我已经将相关资源上传到了网盘
零入门容器云网络实战
链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g
提取码: rrpd
2、技术交流群 |
QQ群:
342498897
暂时不提供微信群。望谅解。
因为微信群存在很多问题。
如,使用人数的限制,没有固定的微信群号,没有永久存在的二维码等等。
因此,建议使用QQ群。
3、环境要求 |
学习本专栏的话,对测试环境的要求:
- go语言
- 版本至少1.18,主要是calico源码要求(非必须)
- 不建议使用1.19以上。有些API不匹配。
- docker环境
- 20.10.0以上,编译calico要求(非必须,不然,需要自己有能力修改Makefile中关于镜像构建的参数)
- Linux内核
- 最低要求
- 如果你打算学习flannel网络下的wireguard模式的话
- 最好是5.0以上
- 最低要求
- 本次学习kubernetes的版本
- k8s版本介绍 v1.21.0
- 操作系统版本
4、我的测试环境介绍 |
我是在Macbookpro16上进行的学习,测试。
在MacBookPro上通过PD软件,安装的Centos虚拟机。
就相当于你在window环境下,通过vmare安装centos是一样的。
因为我们的专栏的核心目的是研究、分析、测试kubernetes的各种网络相关框架。
为了保证每一次测试,环境都是纯净的。
不同知识点,不同框架(flannel,calico),或者说,不同网络模式之间是互不影响的。
会为每一个模式的测试,单独创建一个3个节点的kubernetes集群。
每一个集群,都会保存下来,以便随时查看。
因此,本次专栏的学习,会特别消耗存储资源,一个3个节点的kubernetes集群,我这里至少占用30个g以上。
为此,我专门买了一个xxx的固态移动硬盘。(呵呵,买的太高配了,有点浪费了。普通2T移动硬盘即可)
我是将当前用到的集群直接存储到MAC本地。已经学习完了,不常用的集群存储到移动硬盘里。
如果将所有的集群都存储到移动固态硬盘里的话,会有一个问题,长时间挂载着移动硬盘,移动硬盘会发热。
5、在学习中如何测试呢? |
5.1、假设,我们当前要学习flannel框架,flannel里有很多模式,每个模式都会对应一个k8s集群,那么,此种情况如何快速的创建一个k8s集群呢? |
我们准备一个基础版本的k8s即可,这个k8s版本,没有安装网络。
当然,已经通过kubeadm安装过了kubelet,apiServer,controller等组件了。
如下图所示:
接下来,需要测试某个网络模式时,只需要安装目的网络即可。
5.2、如何快速的查看Pod信息呢? |
我们在学习,测试过程中,需要快速的查看测试结果,
而k8s的相关命令有很长,或者说,每次命令变化不大的话,如何快速的查看目标结果呢?
我是根据测试目的,编写了一些Makefile相关命令。
这里仅列出一些相对复杂的情况,
如,如何快速的查看某个flannel pod的日志呢?
介绍一下Makefile文件
5.2.1、快速列出Pod,service信息 |
vim Makefile
g:
kubectl get pod -A -owide
kubectl get svc -A
使用的时候,只需要
make g
就可以快速查询
5.2.2、如何快速查看某个Pod的日志呢? |
vim log.sh
#!/bin/bash
kubectl logs -f -n $1 $2
同样的道理
如何快速的进入某个pod内部,查看详情呢
5.2.3、如何快速的进入某个Pod内部呢? |
vim exec.sh
#!/bin/bash
kubectl exec -it -n $1 $2 sh