• 0
  • 0
分享
  • 测试需要掌握的 k8s 知识——软件测试圈
  • 曼倩诙谐 2023-11-10 11:01:07 字数 2686 阅读 630 收藏 0

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

  安装虚拟机

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

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

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

1-1.png

  安装 minikube

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

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

  curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
  sudo dpkg -i minikube_latest_amd64.deb

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

1-2.png

  如果是在一个新的系统上启动,可能会提示没有容器执行引擎,因而无法启动。 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

  sudo apt-get update
  sudo apt-get install \
     ca-certificates \
     curl \
     gnupg \
     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、设置稳定版本

  echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  5、安装 dockeer

  sudo apt-get update
   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 能正常使用了。

1-3.png

  部署应用

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

  alias k="minikube kubectl --"

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

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: nginx-deployment
    labels:
      app: nginx
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nginx
    template:
      metadata:
        labels:
          app: nginx
      spec:
        containers:
        - name: nginx
          image: nginx:1.14.2
          ports:
          - containerPort: 80

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

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

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

1-4.png

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

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

  查看所有的服务端口:

  minikube node list     # 查看节点IP
  kubectl get svc -A

1-.png

  或者通过 minikube 查看所有的服务:

  minikube service list

1-6.png

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



作者:yuze    

来源:http://www.51testing.com/html/54/n-7789554.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、什么是Appium?1. Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。2. Appium支持iOS、Android及FirefoxOS平台测试。3. Appium使用webdrive的底层协议,来驱动iOS系统的XUCITest库、Android系统的UIAutomator框架。二、有哪些特点?跨设备跨架构(不同版本的Android和ios)跨语言,支持多种程序语言开发测试程序,基本上 Selenium 支持开发的语言,appium 都支持,比如:pyhton、java、Ruby、js、php、C# 等。跨app,可以在多个A...
            0 0 1509
            分享
          •   操作步骤:  右击:“添加”-"监听器"  察看结果树  查看结果树显示所有取样器的请求信息和响应信息,方便接口调试,问题定位。  聚合报告  聚合报告为测试中的每个取样器创建一行。对于每一个取样器,计算响应信息,并提供请求计数,最小,最大,平均,错误率,近似吞吐量(请求/秒)和千字节每秒的吞吐量。测试完成后,吞吐量就是整个测试期间的实际吞吐量。  · 标签 -样品的标签。如果选择“ 在标签中包括组名? ”,则线程组的名称将作为前缀添加。这样,可以根据需要分别整理来自不同线程组的相同标签。  · #样本 -具有相同标签的样本数  · 平均 -一组结果的平均时间  · 中...
            10 10 1960
            分享
          •   简介  测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、测试任务和风险控制等。  所以在使用ChatGPT输出结果之前,我们需要先将文档的内容框架梳理好,以及将内容范围划定好,必要的时候,可以添加对应的角色。  实践演练  提示词:如果我是一个测试经理,现在需要输出一个版本的测试计划。测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、测试任务、执行任务和风险控制等。  当您需要输出一个版本的测试计划时,以下是一个可以帮助您构建测试计划文档的一般步骤和内容大纲。请注意,具体的内容可能会因项目的性质、规模...
            0 0 462
            分享
          •   据《纽约时报》报道,沙特阿拉伯正计划设立 400 亿美元(IT之家备注:当前约 2880 亿元人民币)的 AI 初创企业风投基金。  根据多位消息人士的说法,这一坐拥巨大石油财富的海湾国家正寻求支持一系列的 AI 科技初创企业,涵盖从芯片设计到数据中心领域。该国代表甚至表示沙特正考虑创办自己的 AI 公司。  具体而言,沙特方面与硅谷顶级风险投资公司安德森 霍洛维茨(Andreessen Horowitz)等方就潜在的合作关系进行了讨论,不过计划仍存有变化的可能。该基金有望于今年下半年正式推出。  如果 400 亿美元的规模成真,则这支风险投资基金将在规模上远超典型的美国对手,仅次于世界范...
            0 0 220
            分享
          •  一、工具背景介绍Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。创建表空间和表它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和...
            0 1 1467
            分享
      • 51testing软件测试圈微信