阿拉平平
读完需要
分钟
速读仅需 3 分钟
1. 项目介绍
k0s[1] 是一款简易、稳定且经过认证的 Kubernetes 发行版,它提供了构建 Kubernetes 集群所需的所有内容,集成了运行 K8s 所有必需的组件。
2. 环境准备
我准备了两台 CentOS 7.8 的虚拟机,信息如下:
master:192.168.128.131
worker:192.168.128.132
需要说明的是,两台主机的防火墙和 SELinux 均已关闭。
3. 下载安装
目前 k0s 的最新版本为 v0.11.0,可以通过脚本下载并安装:
$ curl -sSLf https://get.k0s.sh | sudo sh
安装完成后,验证下版本:
[root@master ~]# k0s version
v0.11.0
各主机下载完成后,就可以搭建集群了。
4. 搭建集群
4.1 master
在 master 主机上安装 controller 服务:
[root@master ~]# k0s install controller
INFO[2021-03-05 15:54:29] no config file given, using defaults
INFO[2021-03-05 15:54:29] creating user: etcd
INFO[2021-03-05 15:54:30] creating user: kube-apiserver
INFO[2021-03-05 15:54:30] creating user: konnectivity-server
INFO[2021-03-05 15:54:30] creating user: kube-scheduler
INFO[2021-03-05 15:54:30] Installing k0s service
启动 controller 服务:
[root@master ~]# systemctl start k0scontroller
服务启动后,检查下运行状态:
[root@master ~]# k0s token create --role=worker > token-file
将 token 文件复制到 worker 主机上:
[root@master ~]# scp token-file 192.168.128.132:/opt/k0s/
至此,master 节点部署完成,接下来登录 worker 节点。
4.2 worker
[root@worker ~]# k0s install worker --token-file /opt/k0s/token-file
INFO[2021-03-05 16:19:41] Installing k0s service
启动服务并确保运行正常:
[root@worker ~]# systemctl start k0sworker
至此,所有的部署工作已完成。
4.3 使用示例
回到 master 节点,首先检查节点的状态。需要注意:如果节点没有加入或者处于 Not Ready,会导致 pod 一直处于 pending 状态:
[root@master ~]# k0s kubectl get nodes
NAME STATUS ROLES AGE VERSION
worker Ready <none> 8m32s v1.20.4-k0s1
可以看到,worker 节点已加入并处于就绪状态,再检查下 kube-system 中 pod 的运行情况:
[root@master ~]# k0s kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-5f6546844f-9fjhp 1/1 Running 0 37m
calico-node-rnjnl 1/1 Running 0 12m
coredns-5c98d7d4d8-xw6lw 1/1 Running 0 38m
konnectivity-agent-xkcjh 1/1 Running 0 10m
kube-proxy-hfcc9 1/1 Running 0 12m
metrics-server-6fbcd86f7b-tc9kg 1/1 Running 0 37m
各 pod 均处于 Runing 状态,说明集群服务运行正常。接下来,试试通过 yaml 文件创建一个 nginx 应用。
[root@master ~]# cat nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
[root@master ~]# k0s kubectl create -f nginx.yaml
deployment.apps/nginx-deployment created
查看 nginx 的运行情况,应用已启动,说明集群可用:
[root@master ~]# k0s kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/1 1 1 46s
5. 写在最后
零摩擦:轻量并保留所有 K8s 的功能,尽可能降低安装和使用的复杂性。
零依赖:集成所有 K8s 组件,无需安装其它依赖。
零成本:二进制文件部署,适合非专业用户使用。
References
[1]
k0s: https://github.com/k0sproject/k0s
[2]
官方文档: https://docs.k0sproject.io/latest/
原文始发于微信公众号(阿拉平平):k0s 使用教程:如何快速搭建 Kubernetes 集群
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/287826.html