日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实操教程丨如何将一个k3s集群集成到Gitlab项目中

發布時間:2024/9/27 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实操教程丨如何将一个k3s集群集成到Gitlab项目中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者|RancherLabs
來源|CSDN企業博客關于k3s
K3s是由Rancher Labs發布的一個輕量級Kubernetes發行版,這款產品專為在資源有限的環境中運行Kubernetes的研發和運維人員設計。它是經過認證的Kubernetes發行版,其最低的系統要求為:

  • 系統內核版本:Linux 3.10+
  • 每個Server最低RAM要求:512 MB
  • 每個節點RAM最低要求:75MB
  • 磁盤空間最低要求:200 MB
  • 支持的硬件架構:x86_64、 ARMv7、 ARM64

這些低配置的要求使得k3s非常適用于IoT相關的場景。
在GitLab中創建項目
在安裝k3s之前,我們先在Gitlab上創建一個新的項目,稱為api。

創建完成之后,我們點擊側邊菜單欄里的Operations,并在下級菜單中選擇Kubernetes。

我們現在有兩個選項:
  • 在GKE上創建一個新的Kubernetes集群
  • 導入現有Kubernetes 集群的配置(無論這一集群在何處創建均可導入)
注意:在當前版本的GitLab中,新集群的創建僅限于GKE。

我們選擇【Add existing cluster】這一選項卡。

在這一步中,我們需要填寫幾個字段來提供我們需要集成的集群配置。一直打開這個選項卡,暫時無需理會。現在,我們先去創建一個全新的Kubernetes集群。

創建一個k3s集群
我們現在將基于k3s啟動一個Kubernetes集群。為什么是k3s呢?因為我想要表明設置它是多么容易。為了讓步驟一目了然,我們僅僅設置一個節點的集群。

我已經配置了名為node1的Ubuntu 18.04服務器,我們在該主機上獲得了一個shell之后,只需要運行以下命令來安裝k3s,這是一個經過認證的Kubernetes集群。

root@node1:~ $ curl -sfL https://get.k3s.io | sh -
上面的命令類似于用于快速Docker安裝的命令:

curl https://get.docker.com | sh
安裝完畢之后,可以在/etc/rancher/k3s/k3s.yaml中找到連接到集群的配置文件。

root@node1:~ $ cat /etc/rancher/k3s/k3s.yaml apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tL...tCg== server: https://localhost:6443 name: default contexts: - context: cluster: default user: default name: default current-context: default kind: Config preferences: {} users: - name: default user: password: 48f4b...4b4e7 username: admin
本地kubectl將自動使用此配置。

$ kubectl get nodes NAME STATUS ROLES AGE VERSION node1 Ready master 3m v1.14.5-k3s.1
注意:正如我們看到的Quick Start那樣(https://k3s.io/),添加額外的節點并不復雜,它基本上只需要從主服務器上的/var/lib/rancher/k3s/server/node-token獲取一個令牌,并使用以下命令即可連接其他一些節點:

$ curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
在Gitlab中集成
現在讓我們獲取在Gitlab項目中集成全新的k3s集群所需的所有信息。

  • 集群名字:k3s
  • API Server的URL:在配置文件中,API Server指定為:https://localhost:6443為了從外部訪問,我們需要提供node1 外部的IP地址。
  • 集群的CA證書:要向Gitlab提供集群CA證書,我們需要解碼配置中指定的那個文件(就像它在base 64中一樣)。

$ kubectl config view --raw \ -o=jsonpath='{.clusters[0].cluster.certificate-authority-data}' \ | base64 --decode Service token
獲取一個識別令牌的過程牽涉到幾個步驟。我們首先需要創建一個ServiceAccount并且向它提供一個cluster-admin角色。以下命令可以完成這些步驟:

$ cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: name: gitlab-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: gitlab-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: gitlab-admin namespace: kube-system EOF
當service account創建完畢之后,我們檢索關聯的類型secret的資源:

$ SECRET=$(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')
下一步是提取與secret關聯的JWT令牌:

$ TOKEN=$(kubectl -n kube-system get secret $SECRET -o jsonpath='{.data.token}' | base64 --decode) $?echo?$TOKEN

我們已經完成了所有設置,現在回到之前打開的選項卡中,開始使用所有信息并填寫Gitlab 【Add existing cluster 】表單的字段:

集群集成之后,我們可以直接從web界面安裝helm(Kubernetes包管理器)。

現在,我們可以從命令行檢查tiller 守護程序(helm的服務器端組件)是否運行。

$ kubectl get deploy --all-namespaces | grep tiller NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE gitlab-managed-apps tiller-deploy 1/1 1 1 67s

集群現在已經可以使用了。除此之外,GitLab的Web界面允許一鍵安裝其他組件:

  • Ingress Controller,暴露集群中運行的服務
  • Cert-Manager,使用Let's Encrypt管理TLS證書
  • Prometheus,監控運行在集群中 的應用程序
  • Knative,部署Serverless工作負載

總 結
在本文中,我們了解如何創建一個k3s集群并且將其集成到一個Gitlab項目中。當然,任何Kubernetes集群都可以使用相同的過程。

我們現在可以添加各種資源到項目中:

  • 源代碼
  • Dockerfile,指定如何從代碼中創建Docker鏡像
  • Kubernetes資源,如部署、服務……
  • .gitlab-ci.yaml文件,定義CI流水線以及如何部署應用程序并且針對相關Kubernetes集群進行測試。





福利掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,r入駐博客,和志同道合的朋友們共同打卡學習!


推薦閱讀:
  • 2019云棲大會:逍遙看巔峰,張勇提“百新”,平頭哥“再亮劍”

  • Pivotal馮雷:以數字化為核心競爭力的時代 自主可控是企業的“必然選擇”

  • 漫畫:程序員一時單身一時爽,一直單身...有點慘

  • 不止于刷榜,三大CV賽事奪冠算法技術的“研”與“用”

  • 如何用 Python 快速開發一個區塊鏈數據結構?

  • 全面解析騰訊最新開源 loT 操作系統 TencentOS tiny!

真香,朕在看了!

總結

以上是生活随笔為你收集整理的实操教程丨如何将一个k3s集群集成到Gitlab项目中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。