<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用 Github Actions 在 K8S 中運行 CI 測試

          共 2211字,需瀏覽 5分鐘

           ·

          2020-10-15 20:56

          前面我們介紹了如何使用 KinD 集群來加速 CI/CD 流水線,本文我們將來介紹如何通過 Github Actions 與 K3S 運行你的 CI 集成測試。

          Github Actions 如何工作

          如果你之前使用過 Travis CI 之類的工具,應該對 Actions 很熟悉了:它們?yōu)槟闾峁┝艘粋€可以測試你應用程序的環(huán)境 - 一般是以服務器的形式,你的代碼在一個目錄中被 checkout 出來,當代碼推送到你的 Github 倉庫上,一個環(huán)境會被啟動,然后檢出代碼,在環(huán)境上執(zhí)行指定的一些任務,如果有任何一個任務失敗了,則你的 CI 任務就會失敗。當然這不僅僅可以用于自動化測試,我們也可以用于編譯應用程序,然后將相關制品上傳到 S3 等服務上,或者向你的 QA 團隊發(fā)送一封電子郵件,讓他們知道哪些測試通過或失敗了。

          我們可以把 Actions 想象成 Github 啟動的一個服務器,然后在里面檢出你的代碼,并在上面執(zhí)行你想要執(zhí)行的任務。

          如果你的開發(fā)環(huán)境運行在 Kubernetes 集群上,或者你正計劃在 Kubernetes 中運行你的 CI 環(huán)境,那么每當你把代碼推送到 Github 上,我們就有一臺機器可以操作,是不是很開心~~~,我們可以簡單地在里面設置一個 Kubernetes 集群,然后將應用程序跑在上面。你可能覺得在 CI 環(huán)境中安裝 Kubernetes 集群不是很好的一個方案:

          1. 在服務器上安裝 Kubernetes 并不是一個簡單的操作
          2. 相關的一些組件需要互相通信(kubectl、apiserver、etcd、kubelet 等),所以可能需要相當長的時間才能讓集群運行起來
          3. 一般情況下 CI 環(huán)境最好在幾秒鐘內就能啟動,所以在 CI 環(huán)境中啟動一個 Kubernetes 集群似乎不是很合理

          比較幸運的是,我們有一些方案是可以來解決上面的這些問題的,前面我們是使用的 KinD,今天我們介紹另外一個輕量級方案:k3s,這是一個面向物聯(lián)網和邊緣計算的輕量級 Kubernetes 發(fā)行版,集群在幾秒鐘內就能啟動和運行,只需要簡單的幾秒命令即可:

          $?curl?-sfL?https://get.k3s.io?|?sh?-
          #?wait?~30s
          $?k3s?kubectl?get?node

          有了 k3s,將 Kubernetes 引入到我們的 Actions 中就非常簡單了。

          K8S Github Action

          首先,在我們的倉庫中的 .github/workflows 文件夾下創(chuàng)建 action 文件,比如 test.yaml,然后在工作流中添加如下所示的步驟:

          name:?K8S?Github?Action

          on:?[push]

          jobs:
          ??build:
          ????runs-on:?ubuntu-latest
          ????timeout-minutes:?5
          ????steps:
          ????-?uses:?actions/checkout@v2
          ????-?name:?install?k8s
          ??????run:?|
          ????????curl?-sfL?https://get.k3s.io?|?K3S_KUBECONFIG_MODE=777?sh?-
          ????????cat?/etc/rancher/k3s/k3s.yaml
          ????????mkdir?-p?~/.kube
          ????????cp?/etc/rancher/k3s/k3s.yaml?~/.kube/config
          ????-?name:?example?tests
          ??????run:?|
          ????????#?Whatever?command?you?want?to?run

          其中的關鍵就是上面執(zhí)行的命令:

          curl?-sfL?https://get.k3s.io?|?K3S_KUBECONFIG_MODE=777?sh?-
          cat?/etc/rancher/k3s/k3s.yaml
          mkdir?-p?~/.kube
          cp?/etc/rancher/k3s/k3s.yaml?~/.kube/config

          首先下載 k3s,安裝后將其配置復制到常用的 kubeconfig 路徑中,這樣做是為了讓 kubectl 能夠與集群進行交互,否則你必須使用 k3s 提供的別名 k3s kubectl(這樣就需要運行 k3s kubectl get po 等命令)。

          可以前往示例倉庫 https://github.com/cnych/k8s-github-action 查看相關信息,在 Actions 下面我們可以查看到構建的任務,在任務中可以很清楚地看到 Kubernetes 的啟動和運行。

          我們可以看到整個集群的安裝任務只花費了 13s 的時間,對于 CI 環(huán)境中去安裝運行 Kubernetes,這個時間是完全可以接受的。

          原文鏈接:https://odino.org/running-ci-tests-in-kubernetes-through-github-actions/




          K8S進階訓練營,點擊下方圖片了解詳情


          瀏覽 77
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本黄色A片免费看 | 久久中文字幕7区 | 五月天黄色视频 | 欧美不卡a| 无码区一区二区 |