测试为什么要学习容器技术及k8s

k8s不是运维的专属技术

随着互联网技术的发展,架构也已经从单体架构发展到容器云( “微服务 + k8s” 完美结合)

很多人认为,k8s只是运维需要掌握的技术,讲真,测试和运维、开发都有技术交集

所以,作为测试,也要跟上技术发展的节奏,与时俱进,技多不压身,大家也可以看看招聘要求,容器技术及k8s是加分项

掌握这些热门技术,妥妥提升竞争力,抓住热门技术的红利期,就能快速加薪

相对于代码来说,学k8s简单多了,也很快

下面简单介绍下为什么要学习容器技术及k8s。

为什么要学习docker?

可以编写dockerfile,制作镜像
快速验证镜像是否ok(docker run)
轻松快捷部署一个学习环境,比如mysql,tomcat

为什么要学习k8s?

1、使用k8s的时候,docker被封装在k8s里面,对docker操作很少

docker是一种容器技术,非k8s组件
docker最小操作单元是容器
k8s最小操作单元是pod

2、不管是功能测试还是其它测试,查看日志需要会k8s基础操作,好比你看linux服务器上日志,需要linux基础一样

3、性能监控分析需要

1、node和linux整体监控一样的,https://www.cnblogs.com/uncleyong/p/15398198.html
2、因为k8s的pod是根据算法调度的,所以你去看这个node上有哪些pod,Kubectl get po -owide | grep k8s-worker01
3、结合微服务链路监控工具,https://www.cnblogs.com/uncleyong/p/15535852.html
4、可以进入容器,kubectl exec -it podname -- sh,有top、vmstat常用命令,java项目,你也可以jstack打栈,也可以使用arthas,https://www.cnblogs.com/uncleyong/p/14944401.htm

附:k8s资源yaml示例

k8s核心资源:精简版yaml示例,https://www.cnblogs.com/uncleyong/p/15571059.html

bak:https://www.cnblogs.com/uncleyong/p/15488243.html

node(no)

详见:https://www.cnblogs.com/uncleyong/p/15789144.html

名称空间(ns)

详见:https://www.cnblogs.com/uncleyong/p/15610985.html

标签(label)

详见:https://www.cnblogs.com/uncleyong/p/15704528.html

核心资源:资源调度(Pod、RC、RCS、Deployment、Daemonset、Statefulset)

Pod

简介

Pod是一组紧密关联的容器集合,支持多个容器在一个Pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式完成服务,是Kubernetes调度的基本单位。

Pod的设计理念是每个Pod都有一个唯一的IP。

Pod具有如下特征:

包含多个共享IPC、Network和UTC namespace的容器,可直接通过localhost通信
所有Pod内容器都可以访问共享的Volume,可以访问共享数据
优雅终止:Pod删除的时候先给其内的进程发送SIGTERM,等待一段时间(grace period)后才强制停止依然还在运行的进程
特权容器(通过SecurityContext配置)具有改变系统配置的权限(在网络插件中大量应用)
支持三种重启策略(restartPolicy),分别是:Always、OnFailure、Never
支持三种镜像拉取策略(imagePullPolicy),分别是:Always、Never、IfNotPresent
资源限制,Kubernetes通过CGroup限制容器的CPU以及内存等资源,可以设置request以及limit值
健康检查,提供两种健康检查探针,分别是livenessProbe和redinessProbe,前者用于探测容器是否存活,如果探测失败,则根据重启策略进行重启操作,后者用于检查容器状态是否正常,如果检查容器状态不正常,则请求不会到达该Pod
Init container在所有容器运行之前执行,常用来初始化配置
容器生命周期钩子函数,用于监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数,支持两种钩子函数:postStart和preStop,前者是在容器启动后执行,后者是在容器停止前执行

【bak】pod资源清单详解:https://www.cnblogs.com/uncleyong/p/15611327.html

创建方式

参考:https://www.cnblogs.com/uncleyong/p/15571059.html

【bak】pod资源清单详解:https://www.cnblogs.com/uncleyong/p/15611327.html

RC & RCS

Replication Controller(简称RC,副本控制器)可确保Pod副本数达到期望值,也就是RC定义的数量。换句话说,Replication Controller可确保一个Pod或一组同类Pod总是可用。

RCS主要用作Deployment协调创建、删除和更新Pod,和Replication Controller唯一的区别是,ReplicaSet支持标签选择器

二者很少单独被使用,都是使用更高级的资源Deployment、DaemonSet、StatefulSet来管理Pod。

Deployment、Daemonset、Statefulset

参考:https://www.cnblogs.com/uncleyong/p/15704741.html

核心资源:配置管理(ConfigMap、Secret)

详见:https://www.cnblogs.com/uncleyong/p/15704534.html

核心资源:服务发布(Service、Ingress)

详见:https://www.cnblogs.com/uncleyong/p/15704537.html

Ingress-nginx的官方文档:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rewrite

Ingress-nginx Github:https://github.com/kubernetes/ingress-nginx

高级调度

污点(Taint)、容忍度(Toleration)

初始化容器(InitContainer)

node亲和性

pod亲和性

拓扑域(Topology),比如实现多地多机房部署

临时容器

计划任务(CronJob)

存储

详见:https://www.cnblogs.com/uncleyong/p/15704766.html

volumes:存储卷

EmptyDir实现数据共享

HostPath挂载宿主机路径

挂载NFS至容器

持久化存储(PV、PVC)

presistentvolume:pv,持久化存储卷

storageclass:动态存储

权限管理:rbac

Role-Based Access Control,中文全称:基于角色的权限访问控制

资源配额:Resource Quotas

详见:https://www.cnblogs.com/uncleyong/p/15704767.html

中间件部署

redis等

包管理工具

helm

operator

运维、devops

日志收集

监控

ci/cd

【测试必备】k8s基本使用(更新中。。。)的更多相关文章

  1. linux中操作k8s的基本命令-更新中

    linux中操作k8s的基本命令 最近工作中使用到了k8s,那么就来总结下平时使用到的基本的命令 获取某个namespace下的pod 获取某个namespace下的pod,展示出ip和pod信息 查 ...

  2. HBase常见问题答疑解惑【持续更新中】

    HBase常见问题答疑解惑[持续更新中] 本文对HBase开发及使用过程中遇到过的常见问题进行梳理总结,希望能解答新加入的HBaser们的一些疑惑. 1. HTable线程安全吗? HTable不是线 ...

  3. 个人开源项目testall 持续更新中···

    项目在GitHub上:https://github.com/x113773/testall ,喜欢的给个星星呀,亲~ 打算把用到过的和学习过的,所有前后端技术都集成到这个项目里,并在issues里配以 ...

  4. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  5. 第一章:大数据 の Linux 基础 [更新中]

    本课主题 Linux 休系结构图 Linux 系统启动的顺序 Linux 查看内存和 CPU 指令 环境变量加载顺序 Linux 内存结构 Linux 休系结构图 Linux 大致分为三个层次,第一层 ...

  6. 网站开发进阶(二十二)HTML UI知识汇总(更新中...)

    HTML知识汇总(更新中...) 1.<iframe> 标签 浏览器支持 所有浏览器都支持 <iframe> 标签. 定义和用法 iframe 元素会创建包含另外一个文档的内联 ...

  7. Linux 系统化学习系列文章总目录(持续更新中)

    本页内容都是本人系统化学习Linux 时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接 ...

  8. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

  9. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

  10. Windows phone 应用开发系列教程(更新中)

    Windows phone 应用开发[1]-Text To Speech        作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...

随机推荐

  1. python2.7发送邮件失败之——邮箱安全问题

    使用python2.7发送邮件,通过脚本调试,脚本运行通过成功发出了邮件,但是目标邮箱qq没有收到. 刚开始怀疑脚本问题,上网查找资料后,发现邮箱发送成功后目标邮件没有收到有可能有以下几种原因: 1. ...

  2. Android官方文档翻译 十五 3.3Supporting Different Platform Versions

    Supporting Different Platform Versions 支持不同的平台版本 This lesson teaches you to 这节课教给你 Specify Minimum a ...

  3. 【小记录】android下opencv的cv::dft()函数,CPU版本与opencl版本的性能相差16倍

            cv::dft  相差15.9倍         cpu版本  单次调用  0.029448 毫秒         opencl版本  单次调用  0.468688  毫秒   差别仅 ...

  4. 【摘抄】疑问chatterbot

    ChatterBot使用哪种机器学习? -------------------------------------------------- -  简而言之,ChatterBot使用了许多不同的机器学 ...

  5. 将Cesium Tools用于更好的构建管理

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium技术正在给建筑业带来革命性的变化.我们与 partn ...

  6. springMvc 启动过程

    转载自https://www.jianshu.com/p/dc64d02e49ac 这里给出一个简洁的文字描述版SpringMVC启动过程: tomcat web容器启动时会去读取web.xml这样的 ...

  7. Android开发 定时任务清理数据

    原文地址:Android开发 定时任务清理数据 | Stars-One的杂货小窝 公司项目,需要整定时任务,对数据进行清理,需要在每天凌晨0:00进行数据的清理,使用了Alarm和广播的方式来实现 P ...

  8. 全网最全的Java SpringBoot点赞功能实现

    前言 最近公司在做一个NFT商城的项目,大致就是一个只买卖数字产品的平台,项目中有个需求是用户可以给商品点赞,还需要获取商品的点赞总数,类似下图 起初感觉这功能很好实现,无非就是加个点赞表嘛,后来发现 ...

  9. MySQL函数学习(一)-----字符串函数

    一.MySQL 字符串函数 \ 函 数 名 称 作 用 完 成 1 LENGTH 计算字符串字节长度 勾 2 CONCAT 合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个 勾 3 ...

  10. VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...