测试人员需要掌握的 k8s 知识

news/2024/6/3 17:45:16 标签: kubernetes, 容器, 云原生

前言

kubernetes容器编排领域已经形成统治地位,不管是开发、运维还是测试,掌握 kubernetes 都变得非常有必要。这篇文章通过 minikube 搭建一个简单的 kubernetes 运行环境。

安装虚拟机

主流的操作系统都支持 kubernetes,但是 windows 操作系统在安装 kubernetes 时,不能通过本地网络直接访问,必须要使用另一台机器,额外装一个虚拟机用起来还是会更方便一些。

装虚拟机可能对电脑的配置要求会更高一些,kubernetes 本身要求电脑的配置至少要 2G 以上内存,2 核以上,虚拟机还需要占用一定的资源,可能会造成电脑满负荷运转。

在 vmware 上装了一个 ubuntu 系统,界面看上去不错。

安装 minikube

kubernetes 官方管理工具是 kubeadmin, 适用于生产环境搭建集群, 也可以使用第三方的管理工具 rancher 或者 k9s 这样的工具。 如果是第一次接触,还是先用 minikube 来顺利调通环境吧。

在 ubuntu 中安装 minikube 比较简单,先通过第一行命令把安装包下载到本地,在通过第二行命令完成安装。

  1. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb

  2. sudo dpkg -i minikube_latest_amd64.deb

安装完成后,通过 minikube start 尝试启动环境:

如果是在一个新的系统上启动,可能会提示没有容器执行引擎,因而无法启动。 kubernetes 支持的容器引擎非常多,包括:

  • vertualbox
  • vmwarefusion
  • kvm2
  • vmware
  • docker
  • podman

可以通过 minikube start --help 查看到,我就直接用 docker 了。

安装 docker

docker 安装可以直接参考 官方文档 的说明.

1、先卸载掉原有的依赖:

sudo apt-get remove docker docker-engine docker.io containerd runc

2、设置 rep

 
  1. sudo apt-get update

  2. sudo apt-get install \

  3. ca-certificates \

  4. curl \

  5. gnupg \

  6. lsb-release

 3、添加 docker 的官方 GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4、设置稳定版本

  1. echo \

  2. "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \

  3. $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5、安装 dockeer

  1. sudo apt-get update

  2. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6、设置用户组

sudo usermod -aG docker $USER && newgrp docker

好了,当 docker 安装好后,重新运行 minikube start,出现启动成功的提示就表示 minikube 能正常使用了。

部署应用

管理和部署容器需要用到 kubernetes 提供的 kubectl 工具, 启动时 minikube 提示如果要使用 kubectl 需要拼写 minikube kubectl -- , 非常繁琐,所以可以定义一个快捷命令:

alias k="minikube kubectl --"

在目录下创建一个 nginx-dp.yaml 文件:

  1. apiVersion: apps/v1

  2. kind: Deployment

  3. metadata:

  4. name: nginx-deployment

  5. labels:

  6. app: nginx

  7. spec:

  8. replicas: 1

  9. selector:

  10. matchLabels:

  11. app: nginx

  12. template:

  13. metadata:

  14. labels:

  15. app: nginx

  16. spec:

  17. containers:

  18. - name: nginx

  19. image: nginx:1.14.2

  20. ports:

  21. - containerPort: 80

然后通过以下命令来运行:

minikube kubectl -- apply -f nginx-dp.yaml

启动之后通过以下命令查看已经运行的 deployments:

但是部署的项目目前是无法通过外部访问的,如果需要外部访问,则需要暴露端口:

kubectl expose deployment nginx-deployment --type=LoadBalancer --port 80

 查看所有的服务端口

 
  1. minikube node list # 查看节点IP

  2. kubectl get svc -A

现在就可以通过网络访问到nginx 服务了。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。


http://www.niftyadmin.cn/n/5415111.html

相关文章

希腊证券交易所ATHEX计划在Sui上部署融资功能

希腊证券交易所ATHEX计划将其电子订单簿构建(Electronic Book Building ,EBB)功能部署到Sui上,他们是第一个与区块链公司合作开发此技术的证券交易所。其背后的雅典交易所集团Athens Exchange Group将与Sui的开发公司Mysten Labs合…

JAVA 方法的使用

目录 方法 导入参数可以有多个 返回多个参数 方法的重载 方法的继承 方法 一个方法分为访问修饰符,关键字,返回类型,方法名,以及导入参数 示例 public static void main(String[] args) {} 解释:其中public是访问修饰…

Express学习(一)

Express Express简介 什么是Express 官方给出的概念:Express是基于Node.js平台,快速、开放、极简的web开发框架。 通俗的理解:Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。进一步理解Express 不使用E…

代码随想录-动态规划(343. 整数拆分、96. 不同的二叉搜索树)

343. 整数拆分 class Solution { public:int integerBreak(int n) {vector<int> dp(n1);dp[0] 0;dp[1] 1;for (int i2; i<n1;i){int ans 0;for (int j1; j<i/2; j){ans max(ans, max(j*dp[i-j], j*(i-j)));}dp[i] ans;}return dp[n];} }; 96. 不同的二叉搜索…

Redis缓存穿透-缓存雪崩-缓存击穿

什么叫缓存穿透? 模拟一个场景: 前端用户发送请求获取数据,后端首先会在缓存Redis中查询,如果能查到数据,则直接返回.如果缓存中查不到数据,则要去数据库查询,如果数据库有,将数据保存到Redis缓存中并且返回用户数据.如果数据库没有则返回null; 这个缓存穿透的问题就是这个…

黑马点评-好友关注实现

关注和取关 针对用户的操作&#xff0c;可以对用户进行关注和取消关注功能&#xff1a; 需要实现两个接口&#xff1a; 关注和取关接口 判断是否关注的接口 接口&#xff1a; //关注和取关 PutMapping("/{id}/{isFollow}") public Result follow(PathVariable(&…

JVM-垃圾收集器G1

G1垃圾回收器 概述&#xff1a; 是一款面向服务器的垃圾收集器,主要针对配备多个处理器及大容量内存的机器. 以极高效率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.G1保留了年轻代和老年代的概念&#xff0c;但不再是物理隔阂了&#xff0c;它们都是&#xff08;可以不连…

TCP重传机制、滑动窗口、拥塞控制

一、总述 TCP&#xff0c;Transmission Control Protocol&#xff0c;是一个面向连接、基于流式传输的可靠传输协议&#xff0c;考虑到的内容很多&#xff0c;比如数据包的丢失、损坏、分片和乱序等&#xff0c;TCP协议通过多种不同的机制来实现可靠传输。今天&#xff0c;重点…