k3s新版本發佈!支持Helm3!還有其他重要更新Highlight!

前 言

兩個月前,業界應用最爲廣泛的Kubernetes管理平臺創建者Rancher Labs(以下簡稱Rancher)在KubeCon2019北美峯會上宣佈,Rancher打造的輕量級Kubernetes發行版k3s正式GA,這款產品專爲在資源有限的環境設計,可以滿足在邊緣計算環境中、在小型設備上運行Kubernetes集羣的需求。在這之後,我們依舊持續受到全球開發者的關注,到12月末,Github Star突破了11,000。

本週,k3s發佈新版本v1.17.0+k3s.1,這一版本是GA後的首個重大變更版本,本文將針對該版本進行簡要說明。

版本號命名規則

之前k3s一直都使用通用的版本號,如v0.1、v0.2、v1.0等。由於k3s從K8s衍生而來,每個k3s版本都會對應一個Kubernetes版本,比如k3s v1.0對應的是Kubernetes v1.16.3,但是這些信息需要在Release Note中查找,這給用戶帶來了極大的不便。Rancher一向重視用戶的使用體驗,因此更改了k3s的版本號命名方式。新的版本號命名方式採用“<K8s version>+<k3s metadata>”的格式,比如v1.17.0+k3s.1版本,如此用戶就能顯而易見地清楚當前對應的Kubernetes版本。

v1.17.0+k3s.1重要改進

Helm2切換到Helm3

通常,我們都是通過Helm的CLI工具來管理chart。此前的k3s版本僅僅支持Helm2,在本次發佈的新版本中增加了對Helm3的支持。Helm3中移除了Tiller組件,其本身的簡潔性給k3s的使用帶來了便利。在新版本的k3s中,Helm3的使用方式如下:


$ helm --kubeconfig /etc/rancher/k3s/k3s.yaml repo add helm-stable https://kubernetes-charts.storage.googleapis.com/
"helm-stable" has been added to your repositories
 
$ helm --kubeconfig /etc/rancher/k3s/k3s.yaml search repo nginx
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
helm-stable/nginx-ingress               1.28.0          0.26.2          An nginx Ingress controller that uses ConfigMap...
helm-stable/nginx-ldapauth-proxy        0.1.3           1.13.5          nginx proxy with ldapauth
helm-stable/nginx-lego                  0.3.1                           Chart for nginx-ingress-controller and kube-lego
helm-stable/gcloud-endpoints            0.1.2           1               DEPRECATED Develop, deploy, protect and monitor…
 
$ helm --kubeconfig /etc/rancher/k3s/k3s.yaml install helm-stable/redis --generate-name
 
$ helm --kubeconfig /etc/rancher/k3s/k3s.yaml list --all-namespaces
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
redis-1578463519        default         1               2020-01-08 06:05:22.482166284 +0000 UTC deployed        redis-10.3.1    5.0.7
traefik                 kube-system     1               2020-01-08 05:24:20.987390979 +0000 UTC deployed        traefik-1.81.0  1.7.19

注意:traefik是k3s內置的ingress-controller,但是默認通過Helm安裝,所以這裏我們可以讀取到,請不要誤刪。

針對Helm的使用,k3s還有另外一種方式,就是通過“Auto-Deploying Manifests”功能來部署chart,當然它需要我們使用自定義CRD進行描述。這是k3s通過內置了一個自己實現的helm controller(https://github.com/rancher/helm-controller)來實現的,爲了同時兼容Helm3和Helm2,我們增加了helmVersion進行說明,比如


# 默認使用helm3,如使用helm2則指定helmVersion
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: grafana
  namespace: kube-system
spec:
  chart: stable/grafana
  helmVersion: v2
  targetNamespace: monitoring
  set:
    adminPassword: "NotVerySafePassword"
  valuesContent: |-
    image:
      tag: master
    env:
      GF_EXPLORE_ENABLED: true
    adminUser: admin
    sidecar:
      datasources:
        enabled: true

此處更詳細的信息,請參考官方文檔:

https://rancher.com/docs/k3s/latest/en/advanced/

pause容器問題

我們都知道Kubernetes的Pod都需要一個pause鏡像,此前的k3s版本使用的是gcr倉庫的pause鏡像,這增加了國內用戶初次安裝的難度,體驗並不友好。新版本對此進行了優化,已經將pause鏡像的地址配置使用DockerHub,這樣對於剛接觸k3s的用戶來說,極大降低了初次部署的難度:

$ crictl images | grep pause
IMAGE                                      TAG                  IMAGE ID            SIZE
docker.io/rancher/pause                    3.1                  da86e6ba6ca19       327kB

關於這一issue更詳細的說明,請參考:

https://github.com/rancher/k3s/issues/1128

其他

k3s內置實現了svclb,換言之,用戶可以無需其他配置就能夠使用type=Loadbalancer的service。在此前的版本中UDP端口的使用存在一些問題,此版本中進行了修復:

https://github.com/rancher/k3s/issues/577

k3s內置部署了metric-server,方便用戶查看各種資源的度量信息。在此前的版本中,有用戶反饋metrics信息查不到的情況,經過排查發現是部分架構的metric-server鏡像沒有推送完整,導致可能使用非amd64的鏡像出現問題。在這一版本中也已經修復:

https://github.com/rancher/k3s/issues/1189

更多其他issue,請查看milestone:

https://github.com/rancher/k3s/milestone/13?closed=1

關於新版本的更多信息,請查閱Release Note:

https://github.com/rancher/k3s/releases/tag/v1.17.0+k3s.1

後 記

k3s發佈至今,一直保持高速發展的態勢。去年11月中旬發佈了GA版本,Github Star數已經超過11,000。也有用戶開始在生產環境中嘗試使用k3s並且取得了不錯的效果。作爲一個發佈不到一年的開源產品,固然不完美,也因此遭受了諸多質疑甚至謾罵攻擊,我們十分理解用戶的心情,也會堅守技術創新的初心。k3s的研發團隊也在不斷努力,針對社區用戶提出的問題以及諸如邊緣計算、嵌入式設備、CI環境等實際使用場景對k3s進行優化和完善。同時,我們非常歡迎各路豪傑參與k3s的改進。

k3s Github:

https://github.com/rancher/k3s

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章