簡單4步,便可在mac上使用k3s部署Jenkins流水線

上篇文章中,咱們已經在mac上成功運行k3s了。那麼,今天咱們更進一步,在上面部署Jenkins流水線,正好看看k3s實際使用情況如何。git

file

和昨天的步驟相似,可是VM的內存設置不一樣:github

一、 準備Multipass VM和安裝k3sapi

讓咱們建立一個2GB內存和50GB磁盤的VM服務器

multipass launch --name k3s --mem 2G --disk 50G

安裝k3s的方法也是同樣的,可是你須要時刻檢查正在運行的腳本架構

multipass exec k3s -- sh -c "curl -sfL https://get.k3s.io | sh -"

複製kubeconfig文件到主機app

multipass copy-files k3s:/etc/rancher/k3s/k3s.yaml .

使用命令:multipass info k3s,列出k3s的信息,以獲取IP地址,將服務器地址從https://localhost:6443 替換爲https://192.168.64.5:6443 ,導出kubeconfig,確認節點是否正常工做。curl

如今咱們已經準備好開發k3s的環境。咱們不須要進入VM,由於主機的kubectl命令行已經夠用了。url

二、 動態存儲類spa

咱們須要提供動態存儲,以便完成一些實際工做。咱們使用local volume provisioner(https://github.com/rancher/local-path-provisioner )來達成這一目的。下載yaml文件並在使用以前檢查一下。命令行

curl -LO https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

應用它並修改此類存儲類爲默認存儲。

kubectl apply -f local-path-storage.yaml
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

如今咱們已經準備好動態存儲類了。

三、 部署Jenkins Helm Chart

k3s經過提供CRD來實現內置支持HelmChart。咱們不須要部署tiller組件,甚至不須要helm命令。

讓咱們根據如下代碼建立一個HelmChart CRD

apiVersion: k3s.cattle.io/v1
kind: HelmChart
metadata:
  name: jenkins
  namespace: kube-system
spec:
  chart: stable/jenkins
  targetNamespace: jenkins
  valuesContent: |-
    Master:
      AdminUser: {{ .adminUser }}
      AdminPassword: {{ .adminPassword }}
    rbac:
      install: true

請注意,在元數據中的命名空間用於HelmChart對象。k3s在kube-sysytem中監控CRD對象,若是建立了任一新的HelmChart對象,將啓動Helm安裝job。

Chart定義要部署哪一個repo和Helm Chart。Jenkins應該位於目標命名空間中。我沒有使用readme示例中的「set」關鍵字,而是使用valuesContent,這樣能夠在其中應用與Chart的value.yaml文件相同的格式。

無需改變Jenkins,將文件另存爲jenkins.yaml。建立目標命名空間,並將其做爲Kubernetes對象yaml文件應用它。

kubectl create ns jenkins
kubectl apply -f jenkins.yaml

開始監控Helm安裝job

kubectl -n kube-system get pods
NAME                            READY   STATUS      RESTARTS   AGE
coredns-7748f7f6df-g6rgw        1/1     Running     0          138m
helm-install-jenkins-txxjn      0/1     Completed   0          111m
helm-install-traefik-bnc5x      0/1     Completed   0          138m
svclb-traefik-b65f58f65-rxllp   2/2     Running     0          138m
traefik-5cc8776646-nfclx        1/1     Running     0          138m

驗證PVC是否綁定

kubectl -n jenkins get pvc
NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins   Bound    pvc-18988281-4d45-11e9-b75c-5ef9efd9374c   8Gi        RWO            local-path     113m

同時還要驗證pod是否正在運行。

kubectl -n jenkins get pods
NAME                             READY   STATUS    RESTARTS   AGE
jenkins-6b6f58bc8d-hbf4r         1/1     Running   0          113m
svclb-jenkins-74fdf6b9f4-zxnwz   1/1     Running   0          113m

四、 訪問Jenkins

尋找服務端口

kubectl -n jenkins get svc
NAME            TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGE
jenkins         LoadBalancer   10.43.75.62    192.168.64.5   8080:30254/TCP   115m
jenkins-agent   ClusterIP      10.43.239.13   <none>         50000/TCP        115m

如今,咱們能夠經過 http://192.168.64.5:8080. 訪問Jenkins,以下所示:

file

若是你還想了解更多關於k3s的使用技巧,歡迎參加10月26日在深圳舉辦的k3s線下workshop,將由Rancher Labs資深架構師爲你詳細介紹k3s的功能、特性以及使用場景,並進行現場demo,還會帶你一塊兒用本身的筆記本搭建k3s集羣噢。點擊此處,趕忙報名吧!

歡迎添加小助手(wx:rancher2),進官方技術羣,瞭解更多Kubernetes使用攻略

相關文章
相關標籤/搜索