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

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


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


一、 準備Multipass VM和安裝k3sgithub


讓咱們建立一個2GB內存和50GB磁盤的VMapi


multipass launch --name k3s --mem 2G --disk 50G複製代碼


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


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


複製kubeconfig文件到主機服務器


multipass copy-files k3s:/etc/rancher/k3s/k3s.yaml .複製代碼


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

export KUBECONFIG=k3s.yamlkubectl get nodes複製代碼

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



二、 動態存儲類
curl


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


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/v1kind: HelmChartmetadata:  name: jenkins  namespace: kube-systemspec:  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 jenkinskubectl apply -f jenkins.yaml複製代碼

開始監控Helm安裝job

kubectl -n kube-system get podsNAME                            READY   STATUS      RESTARTS   AGEcoredns-7748f7f6df-g6rgw        1/1     Running     0          138mhelm-install-jenkins-txxjn      0/1     Completed   0          111mhelm-install-traefik-bnc5x      0/1     Completed   0          138msvclb-traefik-b65f58f65-rxllp   2/2     Running     0          138mtraefik-5cc8776646-nfclx        1/1     Running     0          138m複製代碼


驗證PVC是否綁定


kubectl -n jenkins get pvcNAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGEjenkins   Bound    pvc-18988281-4d45-11e9-b75c-5ef9efd9374c   8Gi        RWO            local-path     113m複製代碼


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


kubectl -n jenkins get podsNAME                             READY   STATUS    RESTARTS   AGEjenkins-6b6f58bc8d-hbf4r         1/1     Running   0          113msvclb-jenkins-74fdf6b9f4-zxnwz   1/1     Running   0          113m複製代碼


四、 訪問Jenkins


尋找服務端口


kubectl -n jenkins get svcNAME            TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)          AGEjenkins         LoadBalancer   10.43.75.62    192.168.64.5   8080:30254/TCP   115mjenkins-agent   ClusterIP      10.43.239.13   <none>         50000/TCP        115m複製代碼


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



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

相關文章
相關標籤/搜索