CentOS安装K8S-Kuboard
前言
dashborad
没有成功
我这里有
192.168.222.150 master
192.168.222.151 node
192.168.222.152 node
Kuboard
安装方式
这里只做记录:点击参考官方文档
这里需要:
192.168.222.150 k8s master
192.168.222.151 k8s node
192.168.222.152 k8s node
192.168.222.251 Docker
安装Kuboard-Spray
,k8s
不能安装这台设备上
注意:如果是虚拟机,必须是固定
IP
kubelet
节点通信kubectl
集群管理工具
安装Kuboard-Spray
关闭防火墙
1 | sudo systemctl stop firewalld |
加载镜像
1 | docker run -d \ |
http://192.168.222.251
,输入用户名 admin
,默认密码 Kuboard123
,即可登录 Kuboard-Spray
界面
加载资源
系统设置
–> 资源包管理
界面,找到最新版本(需要的版本点击导入),点击标题中的加载xxx操作。
离线导入请参考官方文档
规划集群
集群管理
界面,点击 添加集群安装计划
按钮,填写集群名称和资源包:
注意事项
最少的节点数量是 1 个;
ETCD
节点、控制节点的总数量必须为奇数;在
全局设置
标签页,可以设置节点的通用连接参数,例如所有的节点都使用相同的 ssh 端口、用户名、密码,则共同的参数只在此处设置即可;在节点标签页,如果该节点的角色包含
etcd
则必须填写ETCD 成员名称
这个字段;如果您
KuboardSpray
所在节点不能直接访问到Kubernetes
集群的节点,您可以设置跳板机参数,使KuboardSpray
可以通过 ssh 访问集群节点。集群安装过程中,除了已经导入的资源包以外,还需要使用 yum 或 apt 指令安装一些系统软件,例如
curl, rsync, ipvadm, ipset, ethtool
等,此时要用到操作系统的 apt 软件源或者 yum 软件源。全局设置标签页中,可以引导您完成 apt / yum 软件源的设置,您可以:- 使用节点操作系统已经事先配置的 apt / yum 源,或者
- 在安装过程中自动配置节点的操作系统使用指定的软件源
如果您使用 docker 作为集群的容器引擎,还需要在全局设置标签页指定安装 docker 用的 apt / yum 源。
如果您使用 containerd 作为容器引擎,则无需配置 docker 的 apt / yum 源,containerd 的安装包已经包含在 KuboardSpray 离线资源包中。
配置镜像源
只有一个 aliyun
的CentOS
源的路径是新的,其它在添加时都能找到。
强烈建议配在操作系统里。镜像源使用操作系统默认参考配置
注意:虚拟机需要挂载
ISO
镜像mount /dev/cdrom /mnt/cdrom
否则可能会报错
全局配置
建议默认配置,镜像源使用操作系统默认参考配置
节点配置
开始安装
点击保存,然后点击安装/设置集群
访问集群
界面给出了三种方式可以访问 kubernetes
集群:
- 在集群主节点上执行
kubectl
命令 - 获取集群的
.kubeconfig
文件 - 将集群导入到
kuboard
管理界面
也可以安装 portainer.io
安装k8s
管理工具
这里使用:poerainer
安装在 192.168.222.150
数据持久化
查看 StorageClass
1 | kubectl get sc |
如果是 No resources found
则需要创建一个。
创建 StorageClass
https://blog.csdn.net/huwh_/article/details/96016423
https://kubernetes.io/docs/concepts/storage/storage-classes/
https://docs.portainer.io/start/install/server/kubernetes/baremetal
设置 StorageClass
为默认值
1 | kubectl patch storageclass maxzhao-cluster-storage-class -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' |
deploy use yaml manifests
1 | # 社区版 |
也可以使用
portainer
的helm
1
2
3
4 helm repo add portainer https://portainer.github.io/k8s/
helm repo update
# 社区版
helm install --create-namespace -n portainer portainer portainer/portainer --set tls.force=true
https://localhost:30779/ or http://localhost:30777/
重启虚拟机
请参考Kuboard
中的介绍
Worker
节点不能
可能是IP
变化引起的,需要固定IP
后重装集群。
许多Pod一直Crash
或不能正常访问
1 | kubectl get pods --all-namespaces |
重启后会发现许多 Pod
不在 Running
状态,此时,请使用如下命令删除这些状态不正常的 Pod
。通常,您的 Pod
如果是使用 Deployment
、StatefulSet 等控制器创建的,kubernetes
将创建新的 Pod
作为替代,重新启动的 Pod
通常能够正常工作。
1 | kubectl delete pod <pod-name> -n <pod-namespece> |
系统配置
关闭防火墙
1 | sudo systemctl stop firewalld |
Docker
镜像
1 | sudo vim /etc/docker/daemon.json |
改为:
1 | { |
远程访问:"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
配置 k8s
镜像
1 | sudo vim /etc/yum.repos.d/kubernetes.repo |
写入
1 | [kubernetes] |
刷新
1 | # 由于官网未开放同步方式, 可能会有索引gpg检查失败的情况 |
华为云镜像
1 | [kubernetes] |
卸载集群
kubectl config delete-cluster
删除对集群的本地引用。
删除节点
使用适当的凭证与控制平面节点通信,运行:
1 | kubectl drain <node name> --delete-emptydir-data --force --ignore-daemonsets |
在删除节点之前,请重置 kubeadm
安装的状态:
1 | kubeadm reset |
重置过程不会重置或清除 iptables 规则或 IPVS 表。如果你希望重置 iptables,则必须手动进行:
1 | iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X |
如果要重置 IPVS 表,则必须运行以下命令:
1 | ipvsadm -C |
现在删除节点:
1 | kubectl delete node <node name> |
如果你想重新开始,只需运行 kubeadm init
或 kubeadm join
并加上适当的参数。
附录
CentOS7
镜像
1 | # 备份 |
Docker
1 | # 需要挂载 ISO 镜像 |
使用阿里云
1 | # step 1: 安装必要的一些系统工具 |
Docker
镜像加速
手动修改
1 | mkdir /etc/docker |
写入
1 | { |
Spray
安装后使用脚本
可以使用任意一个地址
1 | # Docker中国 mirror |
查看修改结果
1 | docker info |