国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 GitHub Action 自動(dòng)更新 Sealos 集群的應(yīng)用鏡像

這篇具有很好參考價(jià)值的文章主要介紹了使用 GitHub Action 自動(dòng)更新 Sealos 集群的應(yīng)用鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在 IT 領(lǐng)域,自動(dòng)化無疑已成為提高工作效率和減少人為錯(cuò)誤的關(guān)鍵。Sealos 作為一個(gè)強(qiáng)大的云操作系統(tǒng),已經(jīng)為許多企業(yè)和開發(fā)者提供了穩(wěn)定可靠的服務(wù)。與此同時(shí),隨著技術(shù)不斷發(fā)展,集成更多的功能和服務(wù)變得尤為重要??紤]到這一點(diǎn),本文將介紹如何利用 GitHub Action 來進(jìn)一步豐富 Sealos 在應(yīng)用更新方面的自動(dòng)化體驗(yàn)。

原文鏈接:https://forum.laf.run/d/1059

GitHub Action 介紹

在現(xiàn)代軟件開發(fā)中,持續(xù)集成 (CI) 和持續(xù)部署/交付 (CD) 是至關(guān)重要的環(huán)節(jié)。它們可以幫助開發(fā)團(tuán)隊(duì)高效地驗(yàn)證代碼的質(zhì)量并確保其準(zhǔn)確無誤地交付到生產(chǎn)環(huán)境中。GitHub Action 正是在這個(gè)背景下誕生的 CI/CD 工具,致力于為開發(fā)者提供一種簡(jiǎn)潔且高效的自動(dòng)化工具。

簡(jiǎn)單來說,GitHub Action 是一個(gè) CI/CD 工具,它允許開發(fā)者在 GitHub 倉(cāng)庫(kù)中自動(dòng)執(zhí)行多種任務(wù),從而極大地提高了工作效率。它可以自動(dòng)進(jìn)行代碼的構(gòu)建、測(cè)試和部署等關(guān)鍵步驟,確保在每次代碼更新或合并請(qǐng)求中都能夠進(jìn)行快速而準(zhǔn)確的驗(yàn)證和交付。

但 GitHub Action 不僅僅是一個(gè)傳統(tǒng)的 CI/CD 工具。其獨(dú)特之處在于,它與 GitHub 倉(cāng)庫(kù)實(shí)現(xiàn)了無縫集成。這意味著開發(fā)者無需離開 GitHub 環(huán)境,就能夠配置和管理整個(gè)自動(dòng)化流程,極大地簡(jiǎn)化了操作過程。此外,由于 GitHub 是目前世界上最大的代碼托管平臺(tái),這種深度整合使得大量開發(fā)者能夠輕松上手并利用 GitHub Action 進(jìn)行自動(dòng)化操作。

Sealos:同時(shí)面向初學(xué)者與專家

Sealos 的可視化桌面環(huán)境極大簡(jiǎn)化了用戶對(duì)分布式應(yīng)用的管理和維護(hù),用戶不再需要進(jìn)行復(fù)雜的操作或擁有深厚的技術(shù)背景就能輕松管理分布式應(yīng)用。通過減少?gòu)?fù)雜性和提供直觀的界面,Sealos 顯著地降低了用戶的心智負(fù)擔(dān),使其可以更加集中地完成工作。

Sealos 海外集群:https://cloud.sealos.io

Sealos 國(guó)內(nèi)集群:https://cloud.sealos.top

但 Sealos 不僅僅適用于普通用戶,對(duì)于云原生領(lǐng)域的專業(yè)人員,提供了終端,您可以在終端中執(zhí)行各種命令行操作。

同時(shí)還提供了 kubeconfig 文件的下載功能。擁有這個(gè)文件,專業(yè)人員可以將其下載到本地電腦,并使用 kubectl 命令行工具來直接管理和操作 Sealos 中的應(yīng)用資源。這為那些希望深入管理和配置的云原生專家們提供了極大的靈活性。

有了 kubeconfig 之后,我們可以用來實(shí)現(xiàn)各種神奇的功能,比如本文將要介紹的自動(dòng)更新應(yīng)用鏡像。

GitHub Action 自動(dòng)構(gòu)建鏡像

對(duì)于自己開發(fā)的應(yīng)用,要想自動(dòng)更新應(yīng)用的鏡像,前提是得先自動(dòng)構(gòu)建鏡像。

GitHub Action 完美集成在 GitHub 平臺(tái)上,無需額外配置或切換到其他平臺(tái)即可基于源碼來構(gòu)建鏡像。對(duì)于公開的倉(cāng)庫(kù),GitHub 提供了一定的免費(fèi)計(jì)算額度,適合小型項(xiàng)目或個(gè)人開發(fā)者。

使用 GitHub Action 自動(dòng)構(gòu)建并推送鏡像的流程如下:

  1. 創(chuàng)建工作流文件:在你的 GitHub 倉(cāng)庫(kù)中創(chuàng)建一個(gè) .github/workflows 目錄,并在該目錄下創(chuàng)建一個(gè)工作流配置文件,例如 docker_build.yml

  2. 配置 Secret:為了安全地推送鏡像到 Docker Hub 和 ghcr.io,你需要在 GitHub 倉(cāng)庫(kù)的 "Secrets" 部分配置相應(yīng)的認(rèn)證信息。通常,這包括你的 Docker Hub 用戶名、密碼,以及 ghcr.io 的 token。例如:

  3. 編寫工作流腳本:在配置文件中,定義所需的觸發(fā)條件(如 pushmaster 分支)、運(yùn)行環(huán)境以及執(zhí)行的命令。

    示例:

    # 定義工作流的名稱
    name: Build and Push Docker Image
    
    # 定義觸發(fā)工作流的條件
    on:
      workflow_dispatch: # 允許手動(dòng)觸發(fā)工作流
      push: # 當(dāng)有代碼推送事件發(fā)生時(shí)
        branches:
          - master # 只有推送到 master 分支時(shí)才觸發(fā)
    
    # 定義工作流的任務(wù)
    jobs:
      build-image:
        # 定義運(yùn)行此任務(wù)的環(huán)境:最新版本的 ubuntu
        runs-on: ubuntu-latest
    
        # 定義任務(wù)中的步驟
        steps:
          # 檢出代碼。只檢出最新的1次提交
          - uses: actions/checkout@v3
            with:
              fetch-depth: 1
    
          # 設(shè)置 QEMU 模擬器,這通常用于多平臺(tái)的 Docker 構(gòu)建
          - name: Set up QEMU
            uses: docker/setup-qemu-action@v2
    
          # 設(shè)置 Docker Buildx,用于構(gòu)建多平臺(tái)的 Docker 鏡像
          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v2
    
          # 登錄到 Docker Hub
          - name: Login to DockerHub
            uses: docker/login-action@v2
            with:
              username: ${{ secrets.DOCKER_USERNAME }} # 使用存儲(chǔ)在 GitHub Secrets 中的 DockerHub 用戶名
              password: ${{ secrets.DOCKER_PASSWORD }} # 使用存儲(chǔ)在 GitHub Secrets 中的 DockerHub 密碼
    
          # 登錄到 ghcr.io (GitHub Container Registry)
          - name: Login to ghcr.io
            uses: docker/login-action@v2
            with:
              registry: ghcr.io
              username: ${{ github.repository_owner }} # 使用倉(cāng)庫(kù)的擁有者名作為用戶名
              password: ${{ secrets.GHCR_TOKEN }} # 使用存儲(chǔ)在 GitHub Secrets 中的 ghcr.io 的訪問令牌
    
          # 構(gòu)建并推送 Docker 鏡像到 docker.io 和 ghcr.io
          - name: Build and push Docker images to docker.io and ghcr.io
            uses: docker/build-push-action@v2
            with:
              platforms: linux/amd64 # 設(shè)置構(gòu)建平臺(tái)為 linux/amd64
              context: . # Docker 構(gòu)建上下文設(shè)置為當(dāng)前目錄
              push: true # 設(shè)置為真以確保構(gòu)建后的鏡像被推送
              tags: | # 定義推送的標(biāo)簽
                ${{ secrets.DOCKER_USERNAME }}/xxxx:latest
                ghcr.io/${{ github.repository_owner }}/xxxx:latest
    
  4. 觸發(fā)工作流:每當(dāng)符合觸發(fā)條件的事件發(fā)生時(shí),GitHub Action 就會(huì)自動(dòng)執(zhí)行定義的工作流,從而構(gòu)建和推送 Docker 鏡像。

  5. 監(jiān)控與調(diào)試:你可以在 GitHub 倉(cāng)庫(kù)的 "Actions" 標(biāo)簽頁(yè)中,查看工作流的執(zhí)行情況,包括日志、狀態(tài)和結(jié)果。

使用 GitHub Action 自動(dòng)構(gòu)建鏡像不僅可以簡(jiǎn)化開發(fā)流程,還可以確保每次代碼的更改都得到了有效且一致的處理,大大提高了開發(fā)效率和代碼質(zhì)量。同時(shí)通過使用 GitHub 的 secrets 功能,還確保了認(rèn)證信息的安全。

自動(dòng)更新 Sealos 應(yīng)用鏡像

現(xiàn)在我們來到了最后一步。要想自動(dòng)更新鏡像,首先我們來回顧一下整個(gè)流程:

首先,當(dāng)你的應(yīng)用代碼更新并合并到主分支時(shí),GitHub Action 會(huì)自動(dòng)觸發(fā)構(gòu)建鏡像的任務(wù)。構(gòu)建完成后,新的應(yīng)用鏡像會(huì)被推送到鏡像倉(cāng)庫(kù)。

接下來,你需要在 GitHub Action 中調(diào)用 kubectl,更新 Sealos 集群中對(duì)應(yīng)的 Deployment 或 StatefulSet。這樣,Sealos 集群的應(yīng)用就會(huì)使用新的鏡像版本進(jìn)行滾動(dòng)更新。

我們可以利用一個(gè)特定的 GitHub Action:actions-hub/kubectl。這個(gè) Action 提供了在 GitHub Actions 工作流中執(zhí)行 kubectl 命令的能力。

以下是如何在你的 GitHub Actions 工作流中使用 actions-hub/kubectl 來更新 Sealos 應(yīng)用鏡像:

設(shè)置 kubeconfig

為了讓 kubectl 能夠與你的 Sealos 或其他 Kubernetes 集群進(jìn)行通信,你需要提供一個(gè)有效的 Kubeconfig,Sealos 的 kubeconfig 可以在桌面中下載。

下載完成后,你需要將其中的內(nèi)容轉(zhuǎn)換為 base64 格式:

$ cat kubeconfig.yaml | base64

然后將轉(zhuǎn)換后的內(nèi)容存儲(chǔ)到 GitHub 倉(cāng)庫(kù)的 Secret 中,假設(shè) Secret 名為 KUBE_CONFIG 。Secret 配置方式參考上文。

使用 actions-hub/kubectl

現(xiàn)在您只需要在前面自動(dòng)構(gòu)建鏡像的工作流腳本中添加一個(gè)新的 job 來調(diào)用 kubectl 即可。例如:

# 定義工作流的名稱
name: Build and Push Docker Image

# 定義觸發(fā)工作流的條件
on:
  workflow_dispatch: # 允許手動(dòng)觸發(fā)工作流
  push: # 當(dāng)有代碼推送事件發(fā)生時(shí)
    branches:
      - master # 只有推送到 master 分支時(shí)才觸發(fā)

# 定義工作流的任務(wù)
jobs:
  build-image:
  ...
  ...
  deploy:
    needs: build-image
    runs-on: ubuntu-latest
    if: github.repository == '<your_repository>'
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - uses: actions-hub/kubectl@master
        env:
          KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
        with:
          args: rollout restart deployment my-deployment

在這個(gè)例子中,我們更新一個(gè)名為 my-deployment 的 Deployment,更新的方法非常簡(jiǎn)單:直接滾動(dòng)重啟。因?yàn)?Deployment 的 imagePullPolicy 默認(rèn)都是 Always,且鏡像 tag 保持 latest 不變,所以直接重啟就會(huì)拉取最新的鏡像。

如果您的鏡像每次構(gòu)建的 tag 都不同,那可以使用這個(gè)命令來更新鏡像:

...
        with:
          args: set image deployment/my-deployment my-container=my-repo/my-image:<tag>

在這個(gè)例子中,我們更新一個(gè)名為 my-deployment 的 Deployment,將 my-container 的鏡像設(shè)置為 my-repo/my-image:<tag>。其中 tag 可以通過環(huán)境變量的形式從構(gòu)建鏡像的 job 中獲取。

如果您的應(yīng)用不是自己開發(fā)的,且這個(gè)應(yīng)用已提供了鏡像,那么您可以設(shè)計(jì)一個(gè)定時(shí)觸發(fā)的工作流,工作流的任務(wù)是檢測(cè)鏡像倉(cāng)庫(kù)(例如 Docker Hub)的鏡像有沒有更新,如果更新了,就調(diào)用 kubectl 來更新鏡像。文章來源地址http://www.zghlxwxcb.cn/news/detail-711543.html

到了這里,關(guān)于使用 GitHub Action 自動(dòng)更新 Sealos 集群的應(yīng)用鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • github action初體驗(yàn)實(shí)現(xiàn)maven項(xiàng)目自動(dòng)ci test

    github action初體驗(yàn)實(shí)現(xiàn)maven項(xiàng)目自動(dòng)ci test

    這里是 weihubeats ,覺得文章不錯(cuò)可以關(guān)注公眾號(hào) 小奏技術(shù) ,文章首發(fā)。拒絕營(yíng)銷號(hào),拒絕標(biāo)題黨 GitHub Actions是GitHub提供的一種持續(xù)集成/持續(xù)交付(CI/CD)工具,它可以幫助開發(fā)者自動(dòng)化軟件開發(fā)流程中的各種任務(wù),如構(gòu)建、測(cè)試、部署等。通過在代碼倉(cāng)庫(kù)中配置和定義工作流

    2024年01月23日
    瀏覽(23)
  • GitHub Action 通過SSH 自動(dòng)部署到云服務(wù)器上

    GitHub Action 通過SSH 自動(dòng)部署到云服務(wù)器上

    準(zhǔn)備 正式開始之前,你需要掌握 GitHub Action 的基礎(chǔ)語(yǔ)法: workflow (工作流程):持續(xù)集成一次運(yùn)行的過程,就是一個(gè) workflow。 name: 工作流的名稱。 on: 指定次工作流的觸發(fā)器。push 表示只要有人將更改推送到倉(cāng)庫(kù)就會(huì)觸發(fā)工作流運(yùn)行。(點(diǎn)擊這里了解如何指定特定分支,路徑

    2024年01月19日
    瀏覽(29)
  • 超簡(jiǎn)單:github-action自動(dòng)化發(fā)布npm包小記

    超簡(jiǎn)單:github-action自動(dòng)化發(fā)布npm包小記

    打開npm官網(wǎng),并注冊(cè)自己的npm賬號(hào) 1.登錄npm官網(wǎng),登錄成功后,點(diǎn)開右上角頭像,并點(diǎn)擊Access Tokens選項(xiàng) 2.點(diǎn)開Generate New Token下拉框,點(diǎn)擊Classic Token(和Granular Access Token有什么區(qū)別,請(qǐng)自行查驗(yàn)?) 3.填寫token信息,選擇token類型為Automation(可以避免2FA校驗(yàn)),保存申請(qǐng)的token信息

    2024年02月05日
    瀏覽(19)
  • github-action+docker實(shí)現(xiàn)項(xiàng)目可持續(xù)自動(dòng)化部署

    github-action+docker實(shí)現(xiàn)項(xiàng)目可持續(xù)自動(dòng)化部署

    這篇文章以部署vue3項(xiàng)目和nuxt2項(xiàng)目為例結(jié)合 github-action , docker , nginx 等介紹不同的項(xiàng)目自動(dòng)部署流程 部署vue3項(xiàng)目 步驟: 1、騰訊云開啟鏡像倉(cāng)庫(kù) 2、github配置secrets 3、項(xiàng)目根目錄創(chuàng)建dockerfile文件(在action工作流中創(chuàng)建鏡像) 4、github配置action工作流(yml文件) 上面步驟執(zhí)行結(jié)

    2024年04月26日
    瀏覽(21)
  • 【Github-Action】自動(dòng)為PR添加修改文件類型的label

    【Github-Action】自動(dòng)為PR添加修改文件類型的label

    如果你對(duì)github-action感興趣,還可以看這篇文章, 這篇文章教會(huì)你如何開發(fā)Github Action,并且讓你明白它是什么,怎么用,如何做到的。如何開發(fā)一個(gè)action pr-label自動(dòng)添加工具,為您添加核心團(tuán)隊(duì)提交的標(biāo)志和修改的文件類型… 可以從的pr列表中一眼辨別哪些是核心團(tuán)隊(duì)開發(fā)的

    2024年01月25日
    瀏覽(23)
  • 嘗鮮!最新 VitePress 1 版本 + Github action,自動(dòng)部署個(gè)人靜態(tài)站點(diǎn) SSG

    嘗鮮!最新 VitePress 1 版本 + Github action,自動(dòng)部署個(gè)人靜態(tài)站點(diǎn) SSG

    今天查看 vue 文檔時(shí),剛好看到 vue 官網(wǎng)宣布 VitePress 1 更新了: 然后在路上走著走著,突然想著,也許我可以把我的筆記倉(cāng)庫(kù)轉(zhuǎn)換成在線文檔(畢竟純粹的 md 筆記,喜歡的人不多)。 同時(shí),由于我很久之前有過這 vuepress 的使用經(jīng)驗(yàn),而且前段時(shí)間又復(fù)習(xí)了一下 github action,

    2024年04月08日
    瀏覽(23)
  • 淺談sealos及使用sealos4.0部署Kubernetes(K8s)高可用集群

    淺談sealos及使用sealos4.0部署Kubernetes(K8s)高可用集群

    sealos 是以kubernetes為內(nèi)核的云操作系統(tǒng)發(fā)行版 早期單機(jī)操作系統(tǒng)也是分層架構(gòu),后來才演變成 linux windows這種內(nèi)核架構(gòu),云操作系統(tǒng)從容器誕生之日起分層架構(gòu)被擊穿,未來也會(huì)朝著高內(nèi)聚的\\\"云內(nèi)核\\\"架構(gòu)遷移 從現(xiàn)在開始,把你數(shù)據(jù)中心所有機(jī)器想象成一臺(tái)\\\"抽象\\\"的超級(jí)計(jì)算機(jī)

    2024年02月07日
    瀏覽(97)
  • Django實(shí)現(xiàn)接口自動(dòng)化平臺(tái)(十)自定義action names【持續(xù)更新中】

    Django實(shí)現(xiàn)接口自動(dòng)化平臺(tái)(十)自定義action names【持續(xù)更新中】

    相關(guān)文章: Django實(shí)現(xiàn)接口自動(dòng)化平臺(tái)(九)環(huán)境envs序列化器及視圖【持續(xù)更新中】_做測(cè)試的喵醬的博客-CSDN博客 深入理解DRF中的Mixin類_做測(cè)試的喵醬的博客-CSDN博客? python中Mixin類的使用_做測(cè)試的喵醬的博客-CSDN博客? 本章是項(xiàng)目的一個(gè)分解,查看本章內(nèi)容時(shí),要結(jié)合整體項(xiàng)

    2024年02月16日
    瀏覽(29)
  • GitHub Action 使用

    GitHub Action 使用

    GitHub Actions 是一種持續(xù)集成和持續(xù)交付 (CI/CD) 平臺(tái),可用于自動(dòng)執(zhí)行生成、測(cè)試和部署管道。 您可以創(chuàng)建工作流程來構(gòu)建和測(cè)試存儲(chǔ)庫(kù)的每個(gè)拉取請(qǐng)求,或?qū)⒑喜⒌睦≌?qǐng)求部署到生產(chǎn)環(huán)境。GitHub 提供 Linux、Windows 和 macOS 虛擬機(jī)來運(yùn)行工作流程,或者您可以在自己的數(shù)據(jù)中

    2024年02月07日
    瀏覽(13)
  • 【版本控制】GitHub圖床服務(wù)Action---自動(dòng)監(jiān)視圖床倉(cāng)庫(kù)的目錄下的文件數(shù)

    最近突然想起年前圖床倉(cāng)庫(kù)發(fā)生的一個(gè)遺留問題:由于我的網(wǎng)絡(luò)圖床服務(wù)是 Github + Typora 的形式,本地的圖片會(huì)自動(dòng)轉(zhuǎn)義成網(wǎng)絡(luò)圖片并存儲(chǔ)在圖床倉(cāng)庫(kù)下,一般我們會(huì)指定一個(gè)目錄進(jìn)行圖片存儲(chǔ),但是由于GitHub設(shè)定的單個(gè)目錄最大存儲(chǔ)文件數(shù)不能超過1000. 所以在注意到這件事

    2024年02月07日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包