专栏首页k3s社区k3s新版本发布!支持Helm3!还有其他重要更新Highlight!
原创

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • k3s高可用部署实践及其原理

    上一篇我们探讨了k3s单进程如何实现了对k8s各个服务的管理,我们通过单点部署的方式给大家展现了k3s运行时的效果。而在面向生产环境的实践中,高可用HA是我们无...

    k3s中文社区
  • 研发侧利器!k3d+k3s,轻松管理本地k3s集群!

    前面的文章,我们都是围绕在k3s本身或是其关键的应用场景边缘计算中,阐述着相关内容。除了我们常提起的边缘计算领域,k3s还可以在研发侧提供便捷的k8s基础设施,...

    k3s中文社区
  • Oracle首席顾问的k3s之旅:在笔记本上使用Ubuntu和k3s快速启动VM

    我一直在研究minikube,因此出于训练和演示的原因,在我自己的Windows笔记本上已经装好合适的环境,该环境在Oracle VirtualBox设备中有G...

    k3s中文社区
  • k3s高可用部署实践及其原理

    上一篇我们探讨了k3s单进程如何实现了对k8s各个服务的管理,我们通过单点部署的方式给大家展现了k3s运行时的效果。而在面向生产环境的实践中,高可用HA是我们无...

    k3s中文社区
  • Oracle首席顾问的k3s之旅:在笔记本上使用Ubuntu和k3s快速启动VM

    我一直在研究minikube,因此出于训练和演示的原因,在我自己的Windows笔记本上已经装好合适的环境,该环境在Oracle VirtualBox设备中有G...

    k3s中文社区
  • 去哪找房子最靠谱?这 2 个小程序想要比一比 | 晓 PK #1

    随着房价不断攀升,如今「房子」已成为一个既热门又敏感的话题,房价的波动始终牵扯着我们的神经。

    知晓君
  • python模块之collections

    py3study
  • 缺省参数是编译期间绑定的,而不是动态绑定

    看一个程序 #include <iostream> using namespace std; class A { public: virtual void ...

    用户1624346
  • 博览安全圈:挪威290万公民数据或遭黑客窃取

    【IT168 资讯】为了响应国家号召,加强全民网络安全意识,我们会经常性的为大家奉上最具代表性的安全事件。 1. 挪威290万用户的医疗数据或被黑客窃取 近日,...

    企鹅号小编
  • 002.Ceph安装部署

    Ceph Monitors之间默认使用6789端口通信,OSD之间默认用6800:7300范围内的端口通信。Ceph OSD能利用多个网络连接进行与客户端、mo...

    木二

扫码关注云+社区

领取腾讯云代金券