概述
K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
K3s 是 rancher 公司开发维护的一套 K8s 发行版。 目的是轻量化 K8s,并将其应用于 IoT 设备(比如树莓派)。 简单来说,K3s 就是精简版 K8s,消耗资源极少。
适用于以下场景:
1、边缘计算-Edge
2、物联网-IoT
3、CI:持续集成
4、开发
5、ARM 6、嵌入 K8s
安装K3S
# 国内用户,加速安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
检查是否安装成功
kubectl get node -o wide
k3s -v
运行结果如下:
[root@00fly work]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
00fly Ready control-plane,master 4d20h v1.27.4+k3s1 172.17.0.16 <none> CentOS Linux 7 (Core) 3.10.0-1160.88.1.el7.x86_64 containerd://1.7.1-k3s1
[root@00fly work]# k3s -v
k3s version v1.27.4+k3s1 (36645e73)
go version go1.20.6
[root@00fly work]#
部署web服务
在/work 新建 web-all.yml文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: demo
name: demo
spec:
replicas: 3
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- image: registry.cn-shanghai.aliyuncs.com/00fly/docker-demo:0.0.1
name: demo
---
apiVersion: v1
kind: Service #该配置的类型,我们使用的是 Service 服务类型
metadata:
name: demo-service #该服务类型的名称
spec:
selector: #选中的app部署实例
app: demo #为该Deployment设置key为app,value为nginx的标签
ports: #暴露的端口
- protocol: TCP # 走得tcp 协议
port: 8080 #默认端口
targetPort: 8080 #内建服务端口
nodePort: 31080 #对外服务端口
type: NodePort
执行部署
kubectl apply -f web-all.yml
运行结果如下:
[root@00fly web]# kubectl apply -f web-all.yml
deployment.apps/demo created
service/demo-service created
我们可以通过以下命令查看
[root@00fly work]# kubectl get pod
NAME READY STATUS RESTARTS AGE
demo-85d88dc75b-gt9g5 1/1 Running 0 47m
demo-85d88dc75b-xhld7 1/1 Running 0 47m
[root@00fly work]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 4d21h
demo-service NodePort 10.43.141.97 <none> 8080:31080/TCP 42m
服务外网端口为31080,访问界面如下:
说明部署成功!
下面我们验证k3s服务具有自管理功能。
验证pod自动管理
打开客户端,分别执行
kubectl get pod
watch kubectl get pod
在上面窗口执行
kubectl delete pod demo-85d88dc75b-kscgq
观察下面窗口的输出!
其他k3s/k8s功能请自行实践研究!
有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!
-over-