日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探入探討k0s介紹及k0sctl使用

馬哥Linux運(yùn)維 ? 來源:博客 ? 作者:博客 ? 2021-10-20 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近兩年一直在使用 kubeadm 部署 Kubernetes 集群,總體來說配合一些自己小腳本還有一些自動(dòng)化工具還算是方便;但是全容器化穩(wěn)定性確實(shí)擔(dān)憂,也遇到過莫名其妙的證書過期錯(cuò)誤,最后重啟大法解決這種問題;所以也在探索比較方便的二進(jìn)制部署方式,比如這個(gè) k0s。

一、k0s 介紹

The Simple, Solid & Certified Kubernetes Distribution.

k0s 可以認(rèn)為是一個(gè)下游的 Kubernetes 發(fā)行版,與原生 Kubernetes 相比,k0s 并未閹割大量 Kubernetes 功能;k0s 主要閹割部分基本上只有樹內(nèi) Cloud provider,其他的都與原生 Kubernetes 相同。

k0s 自行編譯 Kubernetes 源碼生成 Kubernetes 二進(jìn)制文件,然后在安裝后將二進(jìn)制文件釋放到宿主機(jī)再啟動(dòng);這種情況下所有功能幾乎與原生 Kubernetes 沒有差異。

二、k0sctl 使用

k0sctl 是 k0s 為了方便快速部署集群所提供的工具,有點(diǎn)類似于 kubeadm,但是其擴(kuò)展性要比 kubeadm 好得多。在多節(jié)點(diǎn)的情況下,k0sctl 通過 SSH 鏈接目標(biāo)主機(jī)然后按照步驟釋放文件并啟動(dòng) Kubernetes 相關(guān)服務(wù),從而完成集群初始化。

2.1、k0sctl 安裝集群

安裝過程中會(huì)自動(dòng)下載相關(guān)鏡像,需要保證所有節(jié)點(diǎn)可以扶墻,如何離線安裝后面講解。安裝前保證目標(biāo)機(jī)器的 hostname 為非域名形式,否則可能會(huì)出現(xiàn)一些問題。以下是一個(gè)簡(jiǎn)單的啟動(dòng)集群示例:

首先安裝 k0sctl:

#安裝k0sctl
wgethttps://github.com/k0sproject/k0sctl/releases/download/v0.9.0/k0sctl-linux-x64
chmod+xk0sctl-linux-x64
mvk0sctl-linux-x64/usr/local/bin/k0sctl

然后編寫 k0sctl.yaml 配置文件:

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
-ssh:
address:10.0.0.12
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
-ssh:
address:10.0.0.13
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
-ssh:
address:10.0.0.14
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:worker
-ssh:
address:10.0.0.15
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:worker
k0s:
version:1.21.2+k0s.1
config:
apiVersion:k0s.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s
spec:
api:
address:10.0.0.11
port:6443
k0sApiPort:9443
sans:
-10.0.0.11
-10.0.0.12
-10.0.0.13
storage:
type:etcd
etcd:
peerAddress:10.0.0.11
network:
kubeProxy:
disabled:false
mode:ipvs

最后執(zhí)行 apply 命令安裝即可,安裝前確保你的操作機(jī)器可以 SSH 免密登陸所有目標(biāo)機(jī)器:

?tmpk0sctlapply-cbak.yaml

?????????????????????????????????????█████████████████████
?????????????????????????????????????█████████
?????????????????????????????????????█████████
?????????????????????????????????????█████████
?????????????????????????????????????██████████████████████

k0sctl0.0.0Copyright2021,k0sctlauthors.
Anonymizedtelemetryofusagewillbesenttotheauthors.
Bycontinuingtousek0sctlyouagreetotheseterms:
https://k0sproject.io/licenses/eula
INFO==>Runningphase:Connecttohosts
INFO[ssh]10.0.0.15connected
INFO[ssh]10.0.0.11connected
INFO[ssh]10.0.0.12connected
INFO[ssh]10.0.0.14connected
INFO[ssh]10.0.0.13connected
INFO==>Runningphase:Detecthostoperatingsystems
INFO[ssh]10.0.0.11isrunningUbuntu20.04.2LTS
INFO[ssh]10.0.0.12isrunningUbuntu20.04.2LTS
INFO[ssh]10.0.0.14isrunningUbuntu20.04.2LTS
INFO[ssh]10.0.0.13isrunningUbuntu20.04.2LTS
INFO[ssh]10.0.0.15isrunningUbuntu20.04.2LTS
INFO==>Runningphase:Preparehosts
INFO==>Runningphase:Gatherhostfacts
INFO[ssh]10.0.0.11discoveredens33asprivateinterface
INFO[ssh]10.0.0.13discoveredens33asprivateinterface
INFO[ssh]10.0.0.12discoveredens33asprivateinterface
INFO==>Runningphase:Downloadk0sonhosts
INFO[ssh]10.0.0.11downloadingk0s1.21.2+k0s.1
INFO[ssh]10.0.0.13downloadingk0s1.21.2+k0s.1
INFO[ssh]10.0.0.12downloadingk0s1.21.2+k0s.1
INFO[ssh]10.0.0.15downloadingk0s1.21.2+k0s.1
INFO[ssh]10.0.0.14downloadingk0s1.21.2+k0s.1
......

稍等片刻后帶有三個(gè) Master 和兩個(gè) Node 的集群將安裝完成:

#注意:目標(biāo)機(jī)器 hostname 不應(yīng)當(dāng)為域名形式,這里的樣例是已經(jīng)修復(fù)了這個(gè)問題
k1.node?~k0skubectlgetnode-owide
NAMESTATUSROLESAGEVERSIONINTERNAL-IPEXTERNAL-IPOS-IMAGEKERNEL-VERSIONCONTAINER-RUNTIME
k1.nodeReady10mv1.21.2+k0s10.0.0.11Ubuntu20.04.2LTS5.4.0-77-genericcontainerd://1.4.6
k2.nodeReady10mv1.21.2+k0s10.0.0.12Ubuntu20.04.2LTS5.4.0-77-genericcontainerd://1.4.6
k3.nodeReady10mv1.21.2+k0s10.0.0.13Ubuntu20.04.2LTS5.4.0-77-genericcontainerd://1.4.6
k4.nodeReady10mv1.21.2+k0s10.0.0.14Ubuntu20.04.2LTS5.4.0-77-genericcontainerd://1.4.6
k5.nodeReady10mv1.21.2+k0s10.0.0.15Ubuntu20.04.2LTS5.4.0-77-genericcontainerd://1.4.6

2.2、k0sctl 的擴(kuò)展方式

與 kubeadm 不同,k0sctl 幾乎提供了所有安裝細(xì)節(jié)的可定制化選項(xiàng),其通過三種行為來完成擴(kuò)展:

  • 文件上傳:k0sctl 允許定義在安裝前的文件上傳,在安裝之前 k0sctl 會(huì)把已經(jīng)定義的相關(guān)文件全部上傳到目標(biāo)主機(jī),包括不限于 k0s 本身二進(jìn)制文件、離線鏡像包、其他安裝文件、其他輔助腳本等。

  • Manifests 與 Helm:當(dāng)將特定的文件上傳到 Master 節(jié)點(diǎn)的 /var/lib/k0s/manifests 目錄時(shí),k0s 在安裝過程中會(huì)自動(dòng)應(yīng)用這些配置,類似 kubelet 的 static pod 一樣,只不過 k0s 允許全部資源(包括不限于 Deployment、DaemonSet、namespace 等);同樣也可以直接在 k0sctl.yaml 添加 Helm 配置,k0s 也會(huì)以同樣的方式幫你管理。

  • 輔助腳本:可以在每個(gè)主機(jī)下配置 hooks 選項(xiàng)來實(shí)現(xiàn)執(zhí)行一些特定的腳本(文檔里沒有,需要看源碼),以便在特定情況下做點(diǎn)騷操作。

2.3、k0sctl 使用離線鏡像包

基于上面的擴(kuò)展,k0s 還方便的幫我們集成了離線鏡像包的自動(dòng)導(dǎo)入,我們只需要定義一個(gè)文件上傳,將鏡像包上傳到 /var/lib/k0s/images/ 目錄后,k0s 會(huì)自定將其倒入到 containerd 中而無需我們手動(dòng)干預(yù):

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
#files配置將會(huì)在安裝前將相關(guān)文件上傳到目標(biāo)主機(jī)
files:
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
#在該目錄下的image壓縮包將會(huì)被自動(dòng)導(dǎo)入到containerd中
dstDir:/var/lib/k0s/images/
perm:0755
......

關(guān)于 image 壓縮包(bundle_file)如何下載以及自己自定義問題請(qǐng)參考官方 Airgap install[1] 文檔。
2.4、切換 CNI 插件

默認(rèn)情況下 k0s 內(nèi)部集成了兩個(gè) CNI 插件:Calico 和 kube-router;如果我們使用其他的 CNI 插件例如 Flannel,我們只需要將默認(rèn)的 CNI 插件設(shè)置為 custom,然后將 Flannel 的部署 yaml 上傳到一臺(tái) Master 的 /var/lib/k0s/manifests 目錄即可,k0s 會(huì)自動(dòng)幫我門執(zhí)行 apply -f xxxx.yaml 這種操作。

下面是切換到 Flannel 的樣例,需要注意的是 Flannel 官方鏡像不會(huì)幫你安裝 CNI 的二進(jìn)制文件,我們需要借助文件上傳自己安裝(CNI GitHub 插件下載地址[2]):

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
files:
#將Flannel的yaml放到Manifests里(需要單獨(dú)創(chuàng)建一個(gè)目錄)
-name:flannel
src:/Users/bleem/tmp/kube-flannel.yaml
dstDir:/var/lib/k0s/manifests/flannel
perm:0644
#自己安裝一下CNI插件
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
k0s:
version:v1.21.2+k0s.1
config:
apiVersion:k0s.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s
spec:
api:
address:10.0.0.11
port:6443
k0sApiPort:9443
sans:
-10.0.0.11
-10.0.0.12
-10.0.0.13
storage:
type:etcd
network:
podCIDR:10.244.0.0/16
serviceCIDR:10.96.0.0/12
#這里指定CNI為custom自定義類型,這樣
#k0s就不會(huì)安裝Calico/kube-router了
provider:custom

2.5、上傳 k0s 二進(jìn)制文件

除了普通文件、鏡像壓縮包等,默認(rèn)情況下 k0sctl 在安裝集群時(shí)還會(huì)在目標(biāo)機(jī)器上下載 k0s 二進(jìn)制文件;當(dāng)然在離線環(huán)境下這一步也可以通過一個(gè)簡(jiǎn)單的配置來實(shí)現(xiàn)離線上傳:

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
#聲明需要上傳二進(jìn)制文件
uploadBinary:true
#指定二進(jìn)制文件位置
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:flannel
src:/Users/bleem/tmp/kube-flannel.yaml
dstDir:/var/lib/k0s/manifests/flannel
perm:0644
......

2.6、更換鏡像版本

默認(rèn)情況下 k0s 版本號(hào)與 Kubernetes 保持一致,但是如果期望某個(gè)組件使用特定的版本,則可以直接配置這些內(nèi)置組件的鏡像名稱:

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:flannel
src:/Users/bleem/tmp/kube-flannel.yaml
dstDir:/var/lib/k0s/manifests/flannel
perm:0644
......
k0s:
version:v1.21.2+k0s.1
config:
apiVersion:k0s.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s
spec:
api:
address:10.0.0.11
port:6443
k0sApiPort:9443
sans:
-10.0.0.11
-10.0.0.12
-10.0.0.13
#指定內(nèi)部組件的鏡像使用的版本
images:
#konnectivity:
#image:us.gcr.io/k8s-artifacts-prod/kas-network-proxy/proxy-agent
#version:v0.0.21
#metricsserver:
#image:gcr.io/k8s-staging-metrics-server/metrics-server
#version:v0.3.7
kubeproxy:
image:k8s.gcr.io/kube-proxy
version:v1.21.3
#coredns:
#image:docker.io/coredns/coredns
#version:1.7.0
#calico:
#cni:
#image:docker.io/calico/cni
#version:v3.18.1
#node:
#image:docker.io/calico/node
#version:v3.18.1
#kubecontrollers:
#image:docker.io/calico/kube-controllers
#version:v3.18.1
#kuberouter:
#cni:
#image:docker.io/cloudnativelabs/kube-router
#version:v1.2.1
#cniInstaller:
#image:quay.io/k0sproject/cni-node
#version:0.1.0
default_pull_policy:IfNotPresent
#default_pull_policy:Never

2.7、調(diào)整 Master 組件參數(shù)

熟悉 Kubernetes 的應(yīng)該清楚,Master 上三大組件:apiserver、controller、scheduler 管控整個(gè)集群;在 k0sctl 安裝集群的過程中也允許自定義這些組件的參數(shù),這些調(diào)整通過修改使用的 k0sctl.yaml 配置文件完成。

spec.api.extraArgs:用于自定義 kube-apiserver 的自定義參數(shù)(KV map)

spec.scheduler.extraArgs:用于自定義 kube-scheduler 的自定義參數(shù)(KV map)

spec.controllerManager.extraArgs:用于自定義 kube-controller-manager 自定義參數(shù)(KV map)

spec.workerProfiles:用于覆蓋 kubelet-config.yaml 中的配置,該配置最終將于默認(rèn)的 kubelet-config.yaml 合并

除此之外在 Host 配置中還有一個(gè) InstallFlags 配置用于傳遞 k0s 安裝時(shí)的其他配置選項(xiàng)。

三、k0s HA 搭建

其實(shí)上面的第二部分主要都是介紹 k0sctl 一些基礎(chǔ)功能,為的就是給下面這部分 HA 生產(chǎn)級(jí)部署做鋪墊。

就目前來說,k0s HA 僅支持獨(dú)立負(fù)載均衡器的 HA 架構(gòu);即外部需要有一個(gè)高可用的 4 層負(fù)載均衡器,其他所有 Node 節(jié)點(diǎn)鏈接這個(gè)負(fù)載均衡器實(shí)現(xiàn) Master 的高可用。在使用 k0sctl 命令搭建 HA 集群時(shí)很簡(jiǎn)單,只需要添加一個(gè)外部負(fù)載均衡器地址即可;以下是一個(gè)完整的,全離線狀態(tài)下的 HA 集群搭建配置。

3.1、外部負(fù)載均衡器

在搭建之前我們假設(shè)已經(jīng)有一個(gè)外部的高可用的 4 層負(fù)載均衡器,且負(fù)載均衡器已經(jīng)負(fù)載了以下端口

6443(for Kubernetes API):負(fù)載均衡器 6443 負(fù)載所有 Master 節(jié)點(diǎn)的 6443

9443(for controller join API):負(fù)載均衡器 9443 負(fù)載所有 Master 節(jié)點(diǎn)的 9443

8132(for Konnectivity agent):負(fù)載均衡器 8132 負(fù)載所有 Master 節(jié)點(diǎn)的 8132

8133(for Konnectivity server):負(fù)載均衡器 8133 負(fù)載所有 Master 節(jié)點(diǎn)的 8133

以下為一個(gè) Nginx 4 層代理的樣例:

error_logsyslog:server=unix:/dev/lognotice;

worker_processesauto;
events{
multi_accepton;
useepoll;
worker_connections1024;
}

stream{
upstreamkube_apiserver{
least_conn;
server10.0.0.11:6443;
server10.0.0.12:6443;
server10.0.0.13:6443;
}
upstreamkonnectivity_agent{
least_conn;
server10.0.0.11:8132;
server10.0.0.12:8132;
server10.0.0.13:8132;
}
upstreamkonnectivity_server{
least_conn;
server10.0.0.11:8133;
server10.0.0.12:8133;
server10.0.0.13:8133;
}
upstreamcontroller_join_api{
least_conn;
server10.0.0.11:9443;
server10.0.0.12:9443;
server10.0.0.13:9443;
}

server{
listen0.0.0.0:6443;
proxy_passkube_apiserver;
proxy_timeout10m;
proxy_connect_timeout1s;
}
server{
listen0.0.0.0:8132;
proxy_passkonnectivity_agent;
proxy_timeout10m;
proxy_connect_timeout1s;
}
server{
listen0.0.0.0:8133;
proxy_passkonnectivity_server;
proxy_timeout10m;
proxy_connect_timeout1s;
}
server{
listen0.0.0.0:9443;
proxy_passcontroller_join_api;
proxy_timeout10m;
proxy_connect_timeout1s;
}
}

3.2、搭建 HA 集群

以下為 k0sctl 的 HA + 離線部署樣例配置:

apiVersion:k0sctl.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s-cluster
spec:
hosts:
-ssh:
address:10.0.0.11
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
#role支持的值
#'controller'單Master
#'worker'單Worker
#'controller+worker'Master和Worker都運(yùn)行
role:controller+worker

#從本地上傳k0sbin文件,不要在目標(biāo)機(jī)器下載
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s

#上傳其他文件
files:
#上傳Flannel配置,使用自定的Flannel替換內(nèi)置的Calico
-name:flannel
src:/Users/bleem/tmp/kube-flannel.yaml
dstDir:/var/lib/k0s/manifests/flannel
perm:0644

#上傳打包好的image鏡像包,k0s會(huì)自動(dòng)導(dǎo)入到containerd
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
dstDir:/var/lib/k0s/images/
perm:0755

#使用Flannel后每個(gè)機(jī)器要上傳對(duì)應(yīng)的CNI插件
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
-ssh:
address:10.0.0.12
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
dstDir:/var/lib/k0s/images/
perm:0755
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
-ssh:
address:10.0.0.13
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:controller+worker
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
dstDir:/var/lib/k0s/images/
perm:0755
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
-ssh:
address:10.0.0.14
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:worker
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
dstDir:/var/lib/k0s/images/
perm:0755
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
-ssh:
address:10.0.0.15
user:root
port:22
keyPath:/Users/bleem/.ssh/id_rsa
role:worker
uploadBinary:true
k0sBinaryPath:/Users/bleem/tmp/k0s
files:
-name:image-bundle
src:/Users/bleem/tmp/bundle_file
dstDir:/var/lib/k0s/images/
perm:0755
-name:cni-plugins
src:/Users/bleem/tmp/cni-plugins/*
dstDir:/opt/cni/bin/
perm:0755
k0s:
version:v1.21.2+k0s.1
config:
apiVersion:k0s.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s
spec:
api:
#此處填寫外部的負(fù)載均衡器地址,所有kubelet會(huì)鏈接這個(gè)地址
externalAddress:10.0.0.20
#不要忘了為外部負(fù)載均衡器添加API證書的SAN
sans:
-10.0.0.11
-10.0.0.12
-10.0.0.13
-10.0.0.20
#存儲(chǔ)類型使用etcd,etcd集群由k0s自動(dòng)管理
storage:
type:etcd
network:
podCIDR:10.244.0.0/16
serviceCIDR:10.96.0.0/12
#網(wǎng)絡(luò)插件使用custom,然后讓Flannel接管
provider:custom
kubeProxy:
disabled:false
#開啟kubelet的ipvs模式
mode:ipvs
#不發(fā)送任何匿名統(tǒng)計(jì)信息
telemetry:
enabled:false
images:
default_pull_policy:IfNotPresent

最后只需要執(zhí)行 k0sctl apply -c k0sctl.yaml 稍等幾分鐘集群就搭建好了,安裝過程中可以看到相關(guān)文件的上傳流程:

3d184880-315e-11ec-82a8-dac502259ad0.png

3.3、證書續(xù)簽和管理

kubeadm 集群默認(rèn)證書有效期是一年,到期要通過 kubeadm 重新簽署;k0s 集群也差不多一樣,但是不同的是 k0s 集群更加暴力;只要 CA(默認(rèn) 10年)不丟,k0s 每次重啟都強(qiáng)行重新生成一年有效期的證書,所以在 HA 的環(huán)境下,快到期時(shí)重啟一下 k0s 服務(wù)就行。

k0sctl 安裝完的集群默認(rèn)只有一個(gè) k0scontroller.service 服務(wù),Master、Node 上所有服務(wù)都由這個(gè)服務(wù)啟動(dòng),所以到期之前 systemctl restart k0scontroller.service 一下就行。

四、集群備份和恢復(fù)

k0sctl 提供了集群備份和恢復(fù)功能,默認(rèn)情況下只需要執(zhí)行 k0sctl backup 即可完成集群備份,該命令會(huì)在當(dāng)前目錄下生成一個(gè) k0s_backup_TIMESTAMP.tar.gz 備份文件。

需要恢復(fù)集群時(shí)使用 k0sctl apply --restore-from k0s_backup_TIMESTAMP.tar.gz 命令進(jìn)行恢復(fù)即可;需要注意的是恢復(fù)命令等同于在新機(jī)器重新安裝集群,所以有一定風(fēng)險(xiǎn)。

經(jīng)過連續(xù)兩天的測(cè)試,感覺這個(gè)備份恢復(fù)功能并不算靠譜,還是推薦使用 Velero 備份集群。

五、其他高級(jí)功能

5.1、etcd 替換

在小規(guī)模集群場(chǎng)景下可能并不需要特別完善的 etcd 作為存儲(chǔ),k0s 借助于 kine 庫(kù)可以實(shí)現(xiàn)使用 SQLite 或 MySQL 等傳統(tǒng)數(shù)據(jù)庫(kù)作為集群存儲(chǔ);如果想要切換存儲(chǔ)只需要調(diào)整 k0sctl.yaml 配置即可:

apiVersion:k0s.k0sproject.io/v1beta1
kind:Cluster
metadata:
name:k0s
spec:
storage:
type:kine
kine:
dataSource:"sqlite:///var/lib/k0s/db/state.db?more=rwc&_journal=WAL&cache=shared"

5.2、集群用戶管理

使用 k0sctl 搭建的集群通過 k0s 命令可以很方便的為集群添加用戶,以下是添加樣例:

k0skubeconfigcreate--groups"system:masters"testUser>k0s.config

5.3、Containerd 配置

在不做配置的情況下 k0s 集群使用默認(rèn)的 Containerd 配置,如果需要自己定義特殊配置,可以在安裝時(shí)通過文件上傳方式將 Containerd 配置文件上傳到 /etc/k0s/containerd.toml 位置,該配置將會(huì)被 k0s 啟動(dòng)的 Containerd 讀取并使用。

六、總結(jié)

k0s 是個(gè)不錯(cuò)的項(xiàng)目,對(duì)于二進(jìn)制宿主機(jī)部署 Kubernetes 集群很方便,由于其直接采用 Kubernetes 二進(jìn)制文件啟動(dòng),所以基本沒有功能閹割,而 k0sctl 又為自動(dòng)化安裝提供了良好的擴(kuò)展性,所以值得一試。不過目前來說 k0s 在細(xì)節(jié)部分還有一定瑕疵,比如 konnectivity 服務(wù)在安裝時(shí)無法選擇性關(guān)閉等;k0s 綜合來說是個(gè)不錯(cuò)的工具,也推薦看看源碼,里面很多設(shè)計(jì)很新穎也比較利于了解集群引導(dǎo)過程。

相關(guān)鏈接:

https://docs.k0sproject.io/v1.21.2+k0s.1/airgap-install/

https://github.com/containernetworking/plugins/releases

原文鏈接:https://mritd.com/2021/07/29/test-the-k0s-cluster/

編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器
    +關(guān)注

    關(guān)注

    0

    文章

    801

    瀏覽量

    41942
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    689

    瀏覽量

    31526
  • 負(fù)載均衡器
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    2735

原文標(biāo)題:K0S 使用實(shí)戰(zhàn)介紹

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    GP8201S:I2C轉(zhuǎn)0 - 5V/0 - 10V DAC芯片的全方位解析

    GP8201S:I2C轉(zhuǎn)0 - 5V/0 - 10V DAC芯片的全方位解析 在電子設(shè)計(jì)領(lǐng)域,數(shù)字信號(hào)與模擬信號(hào)的轉(zhuǎn)換是一項(xiàng)關(guān)鍵技術(shù)。今天我們要深入探討的GP8201
    的頭像 發(fā)表于 04-28 15:05 ?138次閱讀

    HPT5K0-L系列AC - DC電源:高性能設(shè)計(jì)與應(yīng)用

    ,成為眾多工程師的理想選擇。下面將為大家詳細(xì)介紹這款電源的特點(diǎn)、性能參數(shù)以及應(yīng)用場(chǎng)景。 文件下載: HPT5K0TS200-L.pdf 一、產(chǎn)品概述 HPT5K0 - L系列電源提供了輸出電壓和輸出電流
    的頭像 發(fā)表于 04-27 14:05 ?89次閱讀

    Texas Instruments Stellaris? LM3S5K36微控制器:設(shè)計(jì)全解析

    深入探討Texas Instruments的Stellaris? LM3S5K36微控制器,從架構(gòu)到各個(gè)功能模塊,全面了解它的設(shè)計(jì)奧秘。 文件下載: LM3S5K36-IQR80-C0T.pdf 架構(gòu)概述
    的頭像 發(fā)表于 04-20 14:05 ?164次閱讀

    使用S32K344_0_2_55.0版本HSE(fullmem)無法進(jìn)行re-format the NVM and RAM catalogs是怎么回事?

    S32K344芯片上安裝S32K344_0_2_55.0版本HSE固件后,HSE固件版本號(hào)可以正確讀取出來。但是在進(jìn)行re-format the NVM and RAM catalogs的操作
    發(fā)表于 04-20 07:41

    安森美NVNJWS5K0P061L P溝道MOSFET:性能剖析與應(yīng)用指南

    深入探討安森美(onsemi)的NVNJWS5K0P061L P溝道MOSFET,了解其特點(diǎn)、參數(shù)以及應(yīng)用場(chǎng)景。 文件下載: NVNJWS5K0P061L-D.PDF 產(chǎn)品概述 NVNJWS5
    的頭像 發(fā)表于 04-19 10:40 ?264次閱讀

    onsemi NVNJWS0K9N10MCL N溝道功率MOSFET深度解析

    onsemi NVNJWS0K9N10MCL N溝道功率MOSFET深度解析 在電子設(shè)計(jì)領(lǐng)域,MOSFET作為一種關(guān)鍵的半導(dǎo)體器件,廣泛應(yīng)用于各類電路中。今天,我們要來詳細(xì)探索 onsemi 公司
    的頭像 發(fā)表于 04-19 10:40 ?226次閱讀

    厚聲RSF系列RSF1JB10K0電阻:高耐壓與抗脈沖特性分析

    厚聲RSF系列RSF1JB10K0電阻的高耐壓與抗脈沖特性分析如下 : 一、高耐壓特性 1、電壓額定值與材料設(shè)計(jì) RSF系列電阻采用金屬氧化物(Metal Oxide)材料,具有高介電強(qiáng)度特性。以
    的頭像 發(fā)表于 04-16 16:31 ?122次閱讀
    厚聲RSF系列RSF1JB10<b class='flag-5'>K0</b>電阻:高耐壓與抗脈沖特性分析

    Freescale K10P32M50SF0芯片:性能與應(yīng)用深度解析

    Freescale K10P32M50SF0芯片:性能與應(yīng)用深度解析 在電子工程師的日常工作中,選擇一款合適的芯片對(duì)于項(xiàng)目的成功至關(guān)重要。Freescale的K10P32M50SF0芯片,屬于K
    的頭像 發(fā)表于 04-10 09:35 ?296次閱讀

    S32K3 OTA 演示示例在 EVB 上復(fù)位后無法啟動(dòng)S32K358怎么解決?

    S32K344 移植到 S32K358 時(shí)所做的修改: 1. 鏈接器文件調(diào)整 int_flash_app : 原點(diǎn) = 0x00600000,長(zhǎng)度 = 0x001D4000 /* 2
    發(fā)表于 03-06 07:59

    探索S32K3xx系列MCU:特性、應(yīng)用與設(shè)計(jì)考量

    MCU憑借其豐富的特性和出色的性能,成為了眾多工程師的首選。今天,我們就來深入探討一下S32K3xx系列MCU的相關(guān)特性、應(yīng)用場(chǎng)景以及設(shè)計(jì)過程中需要考慮的關(guān)鍵因素。 文件下載: NXP
    的頭像 發(fā)表于 12-25 10:55 ?1385次閱讀

    S32K376 BMU與VCU集成方案:硬件、軟件與調(diào)試全解析

    S32K376 BMU與VCU集成方案:硬件、軟件與調(diào)試全解析 在電子工程師的日常工作中,動(dòng)力總成域控制器的設(shè)計(jì)是一項(xiàng)充滿挑戰(zhàn)與機(jī)遇的任務(wù)。今天,我們將深入探討基于NXP S32K376 MCU
    的頭像 發(fā)表于 12-24 14:25 ?677次閱讀

    深入解析S32K396:汽車級(jí)MCU的卓越之選

    K3xx MCUs的重要成員,憑借其出色的性能和豐富的功能,為汽車行業(yè)帶來了新的解決方案。今天,我們就來深入探討一下S32K396的各項(xiàng)特性和技術(shù)參數(shù)。 文件下載: NXP Semiconductors
    的頭像 發(fā)表于 12-24 14:15 ?823次閱讀

    深入解析S32K39、S32K37和S32K36系列MCU:特性、參數(shù)與應(yīng)用考量

    深入解析S32K39、S32K37和S32K36系列MCU:特性、參數(shù)與應(yīng)用考量 在當(dāng)今的電子工程領(lǐng)域,汽車電子的發(fā)展日新月異,對(duì)微控制器(MCU)的性能、功能和安全性提出了更高的要求。NXP
    的頭像 發(fā)表于 12-24 11:50 ?1011次閱讀

    使用J-Link Attach NXP S32K3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF

    在IAR Embedded Workbench for Arm中使用J-Link Attach NXP S32K3的時(shí)候,會(huì)提示對(duì)應(yīng)RAM區(qū)域被初始化成0xDEADBEEF,導(dǎo)致對(duì)應(yīng)RAM區(qū)域的數(shù)據(jù)被“篡改”。
    的頭像 發(fā)表于 11-03 15:26 ?5615次閱讀
    使用J-Link Attach NXP <b class='flag-5'>S32K</b>3導(dǎo)致對(duì)應(yīng)RAM區(qū)域被初始化成<b class='flag-5'>0</b>xDEADBEEF

    LC87F0K08A 8位微控制器8K字節(jié)閃存ROM/384字節(jié)RAM規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《LC87F0K08A 8位微控制器8K字節(jié)閃存ROM/384字節(jié)RAM規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 07-17 15:33 ?0次下載
    云阳县| 哈密市| 元江| 乌拉特后旗| 汶川县| 息烽县| 岳西县| 醴陵市| 东宁县| 苗栗县| 和硕县| 洛川县| 怀集县| 高唐县| 日土县| 富锦市| 新巴尔虎左旗| 四子王旗| 莒南县| 修水县| 巴彦县| 凭祥市| 仪陇县| 遂昌县| 印江| 安阳县| 巩义市| 如东县| 庆安县| 白水县| 仪陇县| 黄浦区| 正宁县| 化德县| 云南省| 塔河县| 定结县| 福州市| 保亭| 敦煌市| 油尖旺区|