久仰大名k8s,业余选手一直望而却步。最近终于初步炮制成功。知道了大概的流程。本篇为部署备忘录。
经过的大环节有:修改树莓派/boot/cmdline.txt甚至/cmd/config.txt里面的集群相关设置,把cgroup驱动enable好。swap关掉。这些都是所有集群内机器都要做的。
接下来是各种装,从containerd开始(这个时点它替代了docker),docker放在这里有点大材小用,containerd这种服务更适合k8s使用,在containerd配置文件中需要enable cgroup。端口转发的rule都配置好,再接着kubelet kubeadm kubectl 安装。最后,安装一款集群网络插件,比如flanneld。这一通装也是所有参与集群的机器都需要的。
题外话,containerd如果pull image以及下载资源太慢,除了阿里云的国内镜像源,有条件用代理,那么可以配置下containerd.service。
接下来,选一个机器当主节点,我个人选了集群成员里配置最低的作为control plane,worker们的配置会高些,因为这个主节点 主要就用来当当看板,调度管理。需要运算资源的pod,全部安去workers。
把配置过的flanneld和metallb服务加入cluster。接下来,去成员机上kubeadm join。最后去control plane上给成员机定义角色worker。
命令行备忘录:
kubectl get pods --all-namespaces -o wide #查看所有pods
kubectl delete pods <pod_name> -n <name_space> # 删除指定pod,其实这里是一种重启操作,而非真的删除;
kubectl logs <pod_name> -n <name_space> #查看指定pod的日志
sudo kubeadm init --apiserver-advertise-address=192.168.11.242 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16 #主节点初始化命令
kubectl label node <node_name> node-role.kubernetes.io/worker=worker #指定node角色
###node删除三件套###
kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets #在control plane发起
sudo kubeadm reset #在对应成员机上发起,注意根据提示,删干净对应路径文件。最后重启下。
kubectl delete nodes <node_name>. #在control plane上发起。
###node删除三件套结束###
#要想彻底删除某个service或者某个pod,都要从deployment下手开始删,如果是服务先删pods再删svc,这样才是真正意义上的删除。不然直接删pods都是其实在做重启pods操作。
kubectl scale --replicas=2 -n<name_space> #改replicas份数
kubectl get all -n <name_space> -o wide #搞不清楚NameSpace里面的复杂情况时,可用。
接下来实在的目标有:1. 在里面织袜子;2.cluster里面起一个baking node;