k3s介紹
Kubernetes已經改變了如何大規模部署和管理容器化工作負載。現在開發人員面臨的挑戰主要在於設置過程的復雜性和資源需求量巨大。如果你深受內存不足的困擾,想要部署輕量級Kubernetes集群來減少內存占用,那么你一定要考慮由Rancher Labs發布的輕量級Kubernetes發行版——k3s。它把安裝Kubernetes所需的一切文件都打包進一個40MB大小的二進制文件中,僅需512MB的RAM即可運行。非常適用於資源有限的環境,如邊緣計算場景、IoT等。
在實際場景中,為了獲得開發和測試的動力,節省開銷,用戶希望能夠以最少的資源利用率和較低的硬件規格來部署Kubernetes。而k3s正好滿足了這一需求,它能夠在任何512MB RAM以上的設備上運行集群,如IoT設備或ARM驅動的設備。
既然k3s僅需少量資源即可運行,那么這意味着一些Kubernetes的特性被移除了:
- 舊的、非默認的、alpha功能
- 大部分in-tree插件(雲提供商和存儲插件),將其用附加組件進行替換
- 用sqlite來代替etcd作為默認存儲機制
配置docker加速
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
k3s安裝
curl -sfL https://get.k3s.io | sh -
k3s配置
mkdir ~/.kube cat /etc/rancher/k3s/k3s.yaml >>~/.kube/config
測試
kubectl get pod -o wide --all-namespaces
創建kubernetes-bootcamp-v1.yaml
apiVersion: apps/v1 kind: Deployment metadata: labels: app: kubernetes-bootcamp-v1 name: kubernetes-bootcamp-v1 spec: replicas: 2 selector: matchLabels: app: kubernetes-bootcamp-v1 template: metadata: labels: app: kubernetes-bootcamp-v1 spec: containers: - image: jocatalin/kubernetes-bootcamp:v1 name: kubernetes-bootcamp-v1
使用kubectl apply
創建Deployment資源
kubectl apply -f kubernetes-bootcamp-v1.yaml
deployment.apps/kubernetes-bootcamp-v1 created
kubectl get pod

其他常用命令
systemctl status k3s #查看k3s服務狀態
systemctl restart k3s #重啟k3s服務
錯誤
使用systemctl status k3s命令時:
Unable to register node "vm_0_16_centos" with API server: Node "vm_0_16_centos" is invalid: metadata.name: Invalid value: "vm_0_16_centos": a DNS-1123 subdomain must onsist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
錯誤
修改hostname
hostnamectl set-hostname vm
如果你想嘗試集群安裝方式:https://my.oschina.net/u/3330830/blog/3124644