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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   过去几周对苹果公司来说并不好过。 在该公司准备最终推出 M4 MacBook Pro 系列产品的过程中,一系列广泛的泄密事件披露了大量细节。 不过,这些只是基本型号的信息,其余配置的信息一直欠奉,但现在不该公司似乎无意中泄露了较小的 14 英寸 M4 MacBook Pro 的规格,显示基本型号可以搭配更多内存。  Reddit 用户 Yunseok-12 在Google上搜索有关 M4 MacBook Pro 的泄露信息时,偶然发现了一张可能是 14 英寸机型潜在配置的图片。 该网站的链接似乎是正确的,但内容并不完整,缺少配图,"Built for Apple Intellig...
            0 0 191
            分享
          • 基本技术问题:游戏测试的基本流程:分析测试需求-制定测试计划-设计测试用例-(可能会进行冒烟测试)-执行测试-生成测试报告OSI七层协议:应用层-表示层-会话层-传输层-网络层-数据链路层-物理层TCP与UDP的差别:游戏测试与软件测试之间的关系:1、游戏测试是软件测试的一部分游戏测试简单说就是发现游戏里的问题(BUG)并进行改进,从而提升游戏产品的质量。游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同的特性:①测试的目的是发现软件中存在的缺陷。②测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书,需求文档,产品文件,或是用户手册,源代码,或是工作的可执...
            10 10 6116
            分享
          • 一个tomcat下如何部署多个项目?Linux跟windows系统下的步骤都差不多,以下linux系统下部署为例。windows系统下部署同理。一、不修改端口,部署多个项目清楚tomcat目录结构的应该都知道,项目包是放在webapps目录下的,那能否在同一个tomcat的webapps目录下运行多个不同项目呢?答案是可以的。1、将多个项目包放入webapps文件夹下2、修改conf下的server.xml文件,新增web应用节点定位到server.xml文件结束标签之前,新增web应用节点,一个节点代表一个项目   <!-- Access&nbs...
            12 12 1741
            分享
          • 读者提问:APP 兼容性测试怎么做 ?阿常回答:分为三步走:1、选取主流机型+版本;2、对主流机型做功能验证;3、选一款机型做网络兼容测试。一、选取主流机型 + 版本选取 TOP 机型+版本的几种途径:1、采用埋点的方式获取 APP 相关数据2、采用云测平台推荐的 TOP 机型+版本3、采用行业内统计的国内主流机型排行二、主流机型的功能验证选好主流机型,接着就是对每一款主流机型进行全功能验证。注意:如果 APP 需要使用到蓝牙、相册等手机自带功能,需要考虑软件与不同机型的蓝牙、相册等手机自带功能的兼容性。三、一款机型做网络测试挑选其中一款主流机型来做网络的兼容性测试。覆盖网...
            0 0 1360
            分享
          • 学习过测试理论的同学肯定都知道,测试人员参与项目的第一步,大部分都是需求评审,但是不少测试同学反馈,自己很少参与需求评审,需求会议也很少喊测试人员参与。我觉得这一方面可能是流程上各角色配合的问题,另一方面可能是因为测试在评审过程中没有体现出参与的价值。针对第一个可能,需要测试主动找产品沟通,一方面表达希望参与需求评审的意愿,另一方面也要求他们在需求评审时喊上测试。针对第二个可能,就需要测试人员从自身上做改进了,为什么这么说呢?我曾经参加过几次需求评审会议,就发现产品在那讲需求,开发偶尔会提一些技术实现上的细节问题,测试就只是在那听了,会议结束后,回去该干嘛干嘛,既然我们测试参与需求评审时不能产...
            3 4 4593
            分享
      • 51testing软件测试圈微信