Kubernetes端到端测试
简介
Kubernetes提供了一个端到端(E2E,从用户而非开发人员的角度)的测试框架,确保K8S代码库的行为一致、可靠。在分布式系统中,通过单元测试/集成测试用例,而端到端行为异常的情况不少见。E2E框架基于Ginkgo、Gomega构建。
除了保证测试覆盖率,编写E…
阅读全文
5 years ago
0
1
利用kind搭建本地K8S集群
简介
Kind是用于在本机运行K8S集群的工具,和Minikube不同,Kind创建的集群是多“节点”的,每个节点对应一个Containerd容器。
Kind的优势包括:
- 多节点、HA支持
- 支持从源码构建出K8S
- 支持Windows/macOS/Linux
Kind包含以下组…
阅读全文
5 years ago
0
Python单元测试
unittest
简介
属于标准库的一部分,类似于JUnit。下面是一个基本的例子:
1 2 3 4 5 6 7 8 9 10 11 12 |
# 编写测试用例模块 import util # 被测试模块 import unittest class TestUtilFunc(unittest.TestCase): def setUp(self): pass # 每个测试函数运行之前 def tearDown(self): pass # 每个测试函数运行之后 def test_indexOf(self): # 测试用例 self.assertEqual(0,util.stringutils.indexOf('123','1')) # 运行单元测试 if __name__ == '__main__' unittest.main() |
从这个例子可以看到:
- 测试用例以类的形式进行分组,从 unittest.TestCase继承
- 测试方法以开头
- unittest支持类似于JUnit的准备/清理机制
- 单元测试的入口点均为unittest.main()
- unittest.TestCase提供了一系列断言方法
跳过测试
可以在测试类、测试方法上添加装饰器,以便在特定条件下,跳过某些测试:
命令行
基…
阅读全文
5 years ago
0
1
OpenID Connect
OAuth 2.0
OAuth是关于授权(给予第三方应用访问你存放在某处的资料,例如让Gmem访问你的Github头像)的开放标准,目前版本是2.0。
只有得到用户的授权,Github才会允许Gmem访问你的头像。那么Github怎么样才能确认Gmem获得授权…
阅读全文
5 years ago
0
Kubernetes故障检测和自愈
前言
在Kubernetes日常运维过程中,会出现各种各样的问题,例如:
- 节点CNI不可用,其它节点无法连接到故障节点的Pod
- Subpath方式挂载的Configmap,特定条件下出现Pod无限重启的问题
- 集群DNS服务器无法通过上游DNS解析外部名称
- 节点假死,…
5 years ago
0
6
Kustomize学习笔记
简介
Kustomize是一个定制化K8S资源定义(YAML)的工具,它不使用Helm那样的模板,比较简单。定制化之后,原始的资源定义保持不变。
从1.14版本开始Kustomize作为Kubectl的一部分进行分发。
术语
术语 | 说明 |
Base |
指会被其它定制(kus… |
5 years ago
0
Jenkins插件开发
插件开发环境(Maven)
通常我们基于Maven来开发Jenkins插件。
添加Jenkins仓库
修改Maven配置文件,添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<profile> <id>jenkins</id> <repositories> <repository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </pluginRepository> </pluginRepositories> </profile> |
父POM
插件项目的父POM通常设置为:
1 2 3 4 5 6 |
<parent> <groupId>org.jenkins-ci.plugins</groupId> <artifactId>plugin</artifactId> <version>3.43</version> <relativePath /> </parent> |
此POM为构件插件提供了合理的缺省配置, 修改属性以定制配置项:
maven-hpi-plugin
这是一个Maven插件,用于构建Jenkins插件。
hpi:create
此目标用于创建一个新的插件项目骨架。目前已经废弃,应…
阅读全文
5 years ago
0
8