SpringBoot实战电商项目mall(40k+star)地址:github.com/macrozheng/…
摘要
记得之前使用Minikube安装K8S的时候,给分3G内存都嫌小!最近发现一个K8S的经量级实现K3S,最低0.5G内存就能运行起来,安装方便,和K8S用起来区别不大。推荐给大家,希望更多没高端机器的朋友也能够把K8S玩起来!
K3S简介
K3S是一个完全符合Kubernetes的发行版。可以使用单一二进制包安装(不到 100MB),安装简单,内存只有一半,最低0.5G内存就能运行。
为什么叫K3S?开发者希望K3S在内存占用方面只有K8S的一半,Kubernetes是一个10个字母的单词,简写为K8S。那么一半大小就是5个字母的单词,简写为K3S。
安装
使用官方提供的脚本安装十分方便,一个命令即可完成安装!
- 使用脚本安装K3S,同时会安装其他实用程序,包括
kubectl
、crictl
、ctr
、k3s-killall.sh
和k3s-uninstall.sh
;
1 | bash复制代码curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh - |
- 安装完成后提示如下信息,并且会将K3S注册为Linux中的服务;
1 | bash复制代码Complete! |
- 可以查看下服务的运行状态,此时显示状态为
active
。
1 | bash复制代码[root@linux-local k3s]# systemctl status k3s |
使用
我们使用kubectl命令操作K3S与之前操作Minikube中的K8S并没有什么区别,这次还是创建一个Nginx的Deployment,然后通过创建Service将其暴露到外部访问。
创建集群
- 由于K3S默认安装了kubectl工具,我们可以直接使用它,比如查看kubectl的版本号;
1 | bash复制代码kubectl version |
1 | bash复制代码Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2+k3s1", GitCommit:"1d4adb0301b9a63ceec8cabb11b309e061f43d5f", GitTreeState:"clean", BuildDate:"2021-01-14T23:52:37Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"} |
- 还可以查看集群详细信息;
1 | bash复制代码kubectl cluster-info |
1 | bash复制代码Kubernetes control plane is running at https://127.0.0.1:6443 |
- 查看集群中的所有Node,可以发现K3S和之前的Minikube一样创建了一个单节点的简单集群。
1 | bash复制代码kubectl get nodes |
1 | bash复制代码NAME STATUS ROLES AGE VERSION |
部署应用
- 指定好应用镜像并创建一个Deployment,这里创建一个Nginx应用;
1 | bash复制代码kubectl create deployment nginx-deployment --image=nginx:1.10 |
- 查看所有Deployment;
1 | bash复制代码kubectl get deployments |
1 | bash复制代码NAME READY UP-TO-DATE AVAILABLE AGE |
查看应用
- 查看Pod的详细状态,包括IP地址、占用端口、使用镜像等信息;
1 | bash复制代码kubectl describe pods |
1 | bash复制代码Name: nginx-deployment-597c48c9dd-j49bc |
- 进入容器内部并执行
bash
命令,如果想退出容器可以使用exit
命令。
1 | bash复制代码kubectl exec -it nginx-deployment-597c48c9dd-j49bc -- bash |
外部访问应用
- 创建一个Service来暴露
nginx-deployment
这个Deployment:
1 | bash复制代码kubectl expose deployment/nginx-deployment --name="nginx-service" --type="NodePort" --port=80 |
- 查看所有Service的状态;
1 | bash复制代码kubectl get services |
1 | bash复制代码NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
- 在Linux服务器上通过CURL命令即可访问Nginx服务,此时将打印Nginx主页信息;
1 | bash复制代码curl localhost:31494 |
- 相比Minikube在虚拟机中安装容器化应用,K3S直接在本机上安装,直接打开防火墙端口即可在外部访问;
1 | bash复制代码# 开启端口 |
- 在外部即可访问Nginx主页,访问地址:http://192.168.5.15:31494
总结
K3S确实是一个很好用的K8S发行版本,不仅安装方便,而且内存占用也降低了。由于直接在本机上安装容器化应用,外部访问也方便了!
本文 GitHub github.com/macrozheng/… 已经收录,欢迎大家Star!
本文转载自: 掘金