久仰大名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。

命令行备忘录:

#####删除local自建pvc#######

kubectl patch pvc var-volume-rolling-node-0 -p '{"metadata":{"finalizers":null}}' -n oxheadalpha #首先

kubectl delete pvc var-volume-rolling-node-0 -n oxheadalpha #最后

######至此,完全删除了local pvc######

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里面的复杂情况时,可用。

 装完metallb在本地树莓派上起个集群,用ping服务测试,结果出问题的话,用下面这个yml修一下。

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.11.240-192.168.11.250

接下来实在的目标有:1. 在里面织袜子;2.cluster里面起一个baking node; 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐