k3s初体验


概述

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 -

k3s默认使用 containerd 作为容器运行时
在这里插入图片描述
如使用docker作为运行容器需先安装docker

#安装需要的软件包,yum-util 提供 yum-config-manager 功能,另外两个是devicemapper 驱动依赖
sudo yum -y install yum-utils device-mapper-persistent-data lvm2

#设置yum源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker
sudo yum -y install docker-ce

systemctl enable docker
systemctl start docker

同时安装命令变为

# 加速安装,指定docker为默认容器
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - --docker

检查是否安装成功

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-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值