k0s是Mirantis
推出的轻量化Kubernetes发行版,Mirantis有一个k8s套件相当有名lens
,这个後面会再简单介绍一下。
k0s主打三项特点
Zero Friction
零磨擦:主要是降低安装Kubernetes的难度,降低Kubernetes的入门门槛,不会光是安装就先死一片
Zero Deps
这个翻不出来QQ :Zero Cost
零成本:免费仔欢呼吧,它是完全免费,并且开源在github上面 k0s source
硬体基本上1c2t的cpu就能支援,现在应该低标都是2c4t或是4c8t了吧,稳稳der,唯一缺点就是目前只支援
curl -sSLf https://get.k0s.sh | sudo sh
执行结果
Downloading k0s from URL: https://github.com/k0sproject/k0s/releases/download/v1.21.4+k0s.0/k0s-v1.21.4+k0s.0-amd64
k0s is now executable in /usr/local/bin
安装参数可参考 configuration
sudo k0s install controller --single
INFO[2021-09-13 06:06:16] no config file given, using defaults
INFO[2021-09-13 06:06:16] creating user: etcd
INFO[2021-09-13 06:06:16] creating user: kube-apiserver
INFO[2021-09-13 06:06:16] creating user: konnectivity-server
INFO[2021-09-13 06:06:16] creating user: kube-scheduler
INFO[2021-09-13 06:06:16] Installing k0s service
k0s version
v1.22.1+k0s.1
sudo k0s status
Version: v1.22.1+k0s.1
Process ID: 1275
Role: controller
Workloads: true
1.先停止k0s service
移除k0s需要sudo权限喔,不然会喷错误
k0s stop #会失败
Error: this command must be run as root
sudo k0s stop #成功
2.移除k0s相关资源,会移除k0s安装的system service, data directories, containers, mounts and network namespaces
sudo k0s reset
INFO[2021-09-13 06:11:07] no config file given, using defaults
INFO[2021-09-13 06:11:07] * remove k0s users step:
INFO[2021-09-13 06:11:07] no config file given, using defaults
INFO[2021-09-13 06:11:07] * uninstall service step
INFO[2021-09-13 06:11:07] Uninstalling the k0s service
INFO[2021-09-13 06:11:07] * remove directories step
INFO k0s cleanup operations done. To ensure a full reset, a node reboot is recommended.
3.最後重开机就完全移除掉k0s罗
在k0s底下要执行kubectl的话,需要前面挂上sudo k0s
sudo k0s kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kube-proxy-2kqmf 1/1 Running 0 13m
kube-system kube-router-kfvxm 1/1 Running 0 13m
kube-system coredns-5ccbdcc4c4-45s4w 1/1 Running 0 13m
kube-system metrics-server-6bd95db5f4-pdprq 1/1 Running 0 13m
sudo k0s kubectl get nodes -A
NAME STATUS ROLES AGE VERSION
k0s-test Ready <none> 19m v1.22.1+k0s
安装好k0s之後,我们来测试看看是否能部署pod到k0s上面。
这边使用nginx container来测试
sudo k0s kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: k0s-nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
EOF
sudo k0s kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kube-proxy-2kqmf 1/1 Running 0 23m
kube-system kube-router-kfvxm 1/1 Running 0 23m
kube-system coredns-5ccbdcc4c4-45s4w 1/1 Running 0 23m
kube-system metrics-server-6bd95db5f4-pdprq 1/1 Running 0 23m
default k0s-nginx-585449566-4cgzk 1/1 Running 0 9s
把k0s-nginx expose出去
sudo k0s kubectl expose deployment k0s-nginx --type=NodePort --port=80
service/k0s-nginx exposed
查看service,可以看到本机31180 port转到nginx 80 port
sudo k0s kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 27m
k0s-nginx NodePort 10.106.142.96 <none> 80:31180/TCP 44s
测试是否成功
curl 127.0.0.1:31180
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
k0s done
>>: day 7 - grpc server 初始 proto测试
Xcode 安装 首先,先确认电脑是否可以安装 Xcode,目前在写这篇文章时是 Xcode 12....
function(函式)是将程序码包起来重复呼叫使用的object(物件),它使我们省下许多时间,为...
此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 嗨!我是卯郁,去年就立志今年要参加...
我们学会了单张表的查询与筛选,当资料需要跨表拉取时该怎麽办呢?这时候我们就需要用到JOIN来把表与表...
在 Day01 的时候我们有提到过资料可能会有杂讯、噪音,因此所使用的模型架构可以分为两个阶段:除噪...