您好,登錄后才能下訂單哦!
在上篇文章中,我們已經在mac上成功運行k3s了。那么,今天我們更進一步,在上面部署Jenkins流水線,正好看看k3s實際使用狀況如何。
?
?
和昨天的步驟類似,但是VM的內存設置不同:
?
1、 準備Multipass VM和安裝k3s
?
讓我們創建一個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文件到主機
?
multipass copy-files k3s:/etc/rancher/k3s/k3s.yaml .
?
使用命令:multipass info k3s
,列出k3s的信息,以獲取IP地址,將服務器地址從https://localhost:6443 替換為https://192.168.64.5:6443 ,導出kubeconfig,確認節點是否正常工作。
?
現在我們已經準備好開發k3s的環境。我們不需要進入VM,因為主機的kubectl命令行已經夠用了。
?
2、 動態存儲類
?
我們需要提供動態存儲,以便完成一些實際工作。我們使用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"}}}'
?
現在我們已經準備好動態存儲類了。
?
3、 部署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
?
4、 訪問Jenkins
?
尋找service port
?
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,如下所示:
?
?
如果你還想了解更多關于k3s的使用技巧,歡迎參加10月26日在深圳舉辦的k3s線下workshop,將由Rancher Labs資深架構師為你詳細介紹k3s的功能、特性以及使用場景,并進行現場demo,還會帶你一起用自己的筆記本搭建k3s集群噢。點擊此處,趕緊報名吧!
?
歡迎添加小助手(×××:×××),進官方技術群,了解更多Kubernetes使用攻略
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。