探秘极简 Kubernetes 发行版 K8E

探秘极简 Kubernetes 发行版 K8E

来源:admin 发布时间:2022-08-16 13:38:16 点击数:


长治网络安全等级保护,长治等保,长治网安备案,网站制作,网站建站,网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储

TL;DR

本文介绍并安装体验了极简 Kubernetes 发行版,也顺便分析学习下编译的流程。

背景

k8e[1] 本意为 kuber easy,是一个 Kubernetes 的极简发行版,意图让云原生落地部署 Kubernetes 更轻松。k8e 是基于另一个发行版 k3s[2] ,经过裁剪(去掉了 Edge/IoT 相关功能、traefix等)、扩展(加入 ingress、sidecar 实现、cilium等)而来。

k8e 具有以下特性:

  • 单二进制文件,集成了 k8s 的各种组件、containerd、runc、kubectl、nerdctl 等
  • 使用 cilium 作为 cni 的实现,方便 eBPF 的快速落地
  • 支持基于 pipy 的 ingress、sidecar proxy,实现应用流量一站式管理
  • 只维护一个 k8s 版本,目前是 1.21
  • 按照私有云的经验增加、优化代码

得益于这些特性,k8e 非常适合CI、开发和企业级部署,单机版的集群适合技术验证环境。

长治网络安全等级保护,长治等保,长治网安备案,网站制作,网站建站,网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储
组件架构图

安装测试

可以从 GitHub 上下载对应版本的二进制文件[3],也可以自己手动编译(后面对编译的流程进行了简单的分析)。

sudo k8e check-config
sudo k8e server &
# Kubeconfig is written to /etc/k8e/k8e.yaml
export KUBECONFIG=/etc/k8e/k8e.yaml

#
On a different node run the below. NODE_TOKEN comes from
# /var/lib/k8e/server/node-token on your server
sudo k8e agent --server https://myserver:6443 --token ${NODE_TOKEN}

#
query all node from k8s cluster
sudo k8e kubectl get nodes

因为没有提供默认的 cni 实现,此时 pod 都处于 Pending 状态。需要手动安装 cilium:

通过 k8e check-config 可以找到 builddata 目录:/var/lib/k8e/data/5a7ced03412504a18bf3f49cbee5dafca7187d86ef8fdaa789448d53d7fbb823

/var/lib/k8e/data/5a7ced03412504a18bf3f49cbee5dafca7187d86ef8fdaa789448d53d7fbb823/bin/cilium install

cilium 安装成功后 Pod 成功运行,可以查看 cilium 状态:

/var/lib/k8e/data/5a7ced03412504a18bf3f49cbee5dafca7187d86ef8fdaa789448d53d7fbb823/bin/cilium status
    /¯¯\
/¯¯\__/¯¯\    Cilium:        OK
\__/¯¯\__/    Operator:      OK
/¯¯\__/¯¯\    Hubble:        disabled
\__/¯¯\__/    ClusterMesh:    disabled
    \__/

DaemonSet        cilium            Desired: 1, Ready: 1/1, Available: 1/1
Deployment        cilium-operator    Desired: 1, Ready: 1/1, Available: 1/1
Containers:      cilium            Running: 1
                  cilium-operator    Running: 1
Cluster Pods:    3/3 managed by Cilium
Image versions    cilium            quay.io/cilium/cilium:v1.10.5: 1
                  cilium-operator    quay.io/cilium/operator-generic:v1.10.5: 1

或者执行 cilium connectivity test 进行检查网络。

上面是作为开发验证环境的部署,若要部署标准 Kubernetes,可以参考官方文档[4]

编译流程分析

k8e 的编译部署简单的两条命令就能完成:

make generate
make

执行 make generate 下载内置的几个工具:runcnerdctlcilium,保存在 bin 目录中。

.DEFAULT_GOALci,执行 make 则会执行 target ci

Dapper

makefile 的第一行是 TARGETS := $(shell ls hack | grep -v \\.sh | grep -v package-airgap| grep -v clean) 定义了变量 TARGETS,然后 $(TARGETS): .dapper 为几个 target 指定前置条件。其中就有 ci,因此在执行 ci 之前会先执行 target .dapper

target .dapper 用于下载 rancher dapper[5]。dapper 是 Docker 的构建封装器,执行时会使用位于源码根目录 Dockerfile.dapper 构建镜像,并以此作为代码构建环境。

Dockerfile.dapper 中,会准备构建环境,以及几个需要关注的设置:

  • WORKDIR/go/src/github.com/xiaods/k8e/,也就是容器的工作目录。dapper 启动时会将源码内容拷贝到容器中
  • ENTRYPOINT["./hack/entry.sh"],容器启动的 entrypoint。
  • CMD["ci"],容器运行时的默认 CMD
  • ENV
    • DAPPER_SOURCE/go/src/github.com/xiaods/k8e/
    • DAPPER_OUTPUT./bin ./dist ./build/out,构建完成后,会执行 docker cp ${DAPPER_SOURCE}/${DAPPER_OUTPUT} . 将容器中的内容拷贝到容器外。
    • ...

dapper 下载完成后会执行 ci 的命令:./.dapper ci,根据 Dockerfile.dapper 的配置,启动后会执行 ./hack/entry.sh ci

CI

CI 的流程与 k3s 的流程相比精简了很多。在 ./hack/ci 中,会依次执行:

  • ./hack/validate:代码格式化、校验
  • ./hack/build:代码编译
  • ./hack/package:将前面下载、编译的 bin/ 目录下的二进制一同打包到同一个二进制文件中(使用 go-bindata[6])。
  • ./hack/binary_size_check.sh:二进制文件大小的检查,是否超过 81 M(k3s 的是64M,由于加入了 cilium 等 cli,体积会有增加)。

参考资料

[1]

k8e: https://github.com/xiaods/k8e

[2]

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

[3]

二进制文件: https://github.com/xiaods/k8e/releases

[4]

官方文档: https://getk8e.com/docs/install/quick-start/

[5]

rancher dapper: https://github.com/rancher/dapper

[6]

go-bindata: https://github.com/go-bindata/go-bindata


本文转载自:「云原生指北」,原文:https://tinyurl.com/5n8rzac4,版权归原作者所有。


长治等保,等保,网络安全,网络等保,等级保护,网络安全等保,网络安全等级保护,长治网络安全等级保护,等保公司,等保测评,等级保护2.0,定级,定级备案,等保备案,长治等保备案,山西等保备案,系统测评,系统备案,网安备案,等保备案服务,等保咨询,公安局备案,二级等保,三级等保,三级测评,系统整改,做等保的公司,网站建设,企业网站建设,企业网站开发,企业网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储

Powered by 园鉴科技 ©2021-2024  www.anycastyun.com

首 页
产 品
方 案
客 服