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