启动minikube
systemctl enable docker.service systemctl enable kubelet.service minikube start --vm-driver=none # 带有滚动日志 minikube start --vm-driver=none --alsologtostderr -v=8
原因是docker的Cgroup Driver和kubelet的Cgroup Driver不一致
两种解决方法
- 修改docker的Cgroup Driver
vi /etc/docker/daemon.json # 添加 "exec-opts": ["native.cgroupdriver=systemd"] systemctl daemon-reload systemctl restart docker
- 修改kubelet的Cgroup Driver
vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf # 增加 --cgroup-driver=cgroupfs systemctl daemon-reload systemctl restart kubelet
再次启动kubenate
两种处理方法
- 关闭swap
swapoff -a sed -ri 's/.*swap.*/#&/' /etc/fstab
- 通过参数忽略swap报错
# 在kubeadm初始化时增加--ignore-preflight-errors=Swap参数,注意Swap中S要大写 kubeadm init --ignore-preflight-errors=Swap # 另外还要设置/etc/sysconfig/kubelet参数 sed -i 's/KUBELET_EXTRA_ARGS=/KUBELET_EXTRA_ARGS="--fail-swap-on=false"/' /etc/sysconfig/kubelet 在以往老版本中是必须要关闭swap的,但是现在新版又多了一个选择,可以通过参数指定,忽略swap报错
再次启动
yum install -y socat
再次启动
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
终于启动成功了 留下了幸福的眼泪
查看启动状态
minikube status
安装KuteFate
上传KuteFate包到虚拟机上
cd /home/fate rz tar -xzf ./kubefate-k8s-v1.3.0-a.tar.gz
启动KuteFate
cd /home/fate # 停止启动 kubectl delete -f ./rbac-config.yaml kubectl apply -f ./rbac-config.yaml
说明没有起来
查看所有pod
kubectl get pods -n kube-fate -o wide
查看某一个pod日志
kubectl describe pod kubefate-64d57cb855-9x89q -n kube-fate
默认调度程序0/1节点可用:1个节点有pod不能忍受的污点
节点是不可调度
# kubernetes出于安全考虑默认情况下无法在master节点上部署pod kubectl get no -o yaml | grep taint -A 5
设置污点
kubectl taint nodes --all node-role.kubernetes.io/master=:NoSchedule --overwrite=true
节点总是会有一个污点node.kubernetes.io/not-ready该污点表示如果pod是not ready状态则不会调度该pod
查看节点信息
kubectl get nodes
忙了一天了 有点累了 这个问题留到下篇文章再处理吧
后记
接下来会介绍 1、节点和pod的污点/容忍这块如何处理 2、kubefate k8s启动 3、kubefate 验证启动效果(跑一个联邦学习模型训练demo) 4、linux服务器某一个分区磁盘空间不够的情况下如何扩容