概述
Kuboard 是一款专为 Kubernetes 设计的免费管理界面,经过版本不断迭代和优化更新,已经具备多集群管理、权限管理、监控套件、日志套件及审计等丰富的功能。
系统平台
上面规划安装了三台虚拟机,如上的硬件配置,将可以搭建一套单 master 集群。
一、配置要求
Ø 至少 2台 2核 4G 的服务器
Ø CentOS 7.6 / 7.7 / 7.8/ 7.9
Host Node | IOS | CPU | Memory | Disk | IP |
master | CentOS Linux 7 | 4 cores | 4G | 40G | 192.168.*.* |
worker1 | CentOS Linux 7 | 4 cores | 5G | 40G | 192.168.*.* |
worker1 | CentOS Linux 7 | 4 cores | 5G | 40G | 192.168.*.* |
在开始动手之前,要安装 kubernetes 集群机器需要满足以下几个条件:
✬一台或多台机器,安装操作系统 CentOS 7。
✬硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多。
✬可以访问互联网,安装过程需要拉取镜像,安装软件。
二、配置免密登录
三台服务器都修改一下 hosts 文件,按下面的方式操作,然后查看 hosts 文件的变化。
三台服务器之间配置互信免密登录,后续会很方便。
# ssh-keygen -t rsa
使用 ssh-copy-id 复制公钥到所有服务器节点,方式有很多,看个人习惯使用。
# ssh-copy-id -i ~/.ssh/id_rsa.pub k8sworker1
三、kuboard 部署方式介绍
利用 Kuboard 可以快速部署 kubernetes 集群,这个工具通过几条指令就可以搭建完一套 kubernetes 集群的部署。
Kuboard 官网,一步一步介绍的都非常全面详细,按安装教程执行即可。
https://kuboard.cn/
安装前还有一些系统初始化操作
3.1 关闭防火墙
# systemctl status firewalld
# systemctl stop firewalld
# systemctl disable firewalld #禁止开机启动
3.2 关闭selinux:
# sed -i 's/enforcing/disabled/' /etc/selinux/config #永久
# setenforce 0 #临时
查看selinux状态
# sestatus #查看是否生效
# getenforce #查看是否生效
3.3 关闭swap:
# sed -i 's/.*swap.*/#&/' /etc/fstab #注释掉swap这一行,永久关闭。
# swapoff -a #临时
# free -lhgt #查看分区空间
3.4 修改主机名:
hostnamectl set-hostname <hostname>
# hostnamectl set-hostname k8smaster
# hostnamectl set-hostname k8sworker1
# hostnamectl set-hostname k8sworker2
3.5 设置 hostname 解析
# echo "127.0.0.1 $(hostname)" >> /etc/hosts
3.6 检测网络
# ip route show
default via 192.168.59.2 dev ens33 proto static metric 100
192.168.59.0/24 dev ens33 proto kernel scope link src 192.168.59.157 metric 100
# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:b6:8b:f0 brd ff:ff:ff:ff:ff:ff
inet 192.168.59.157/24 brd 192.168.59.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::ad76:d077:628c:406a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
四、开始安装
使用 root 身份在所有节点执行如下代码,进行安装软件:
# export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
# curl -sSL https://kuboard.cn/install-script/v1.19.x/install_kubelet.sh | sh -s 1.19.5
初始化 master 节点,只在 master 机器上执行,需要 master 机器的 IP 即可。
# export MASTER_IP=192.168.59.157
# export APISERVER_NAME=apiserver.demo
# export POD_SUBNET=10.100.0.1/16
# echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
# curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.5
检查 master 初始化结果
# echo MASTER_IP=${MASTER_IP} && echo APISERVER_NAME=${APISERVER_NAME} && echo POD_SUBNET=${POD_SUBNET}
MASTER_IP=192.168.59.157
APISERVER_NAME=apiserver.demo
POD_SUBNET=10.100.0.1/16
#
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/k8sxio/kube-proxy v1.19.5 6e5666d85a31 2 years ago 118MB
registry.aliyuncs.com/k8sxio/kube-controller-manager v1.19.5 f196e958af67 2 years ago 111MB
registry.aliyuncs.com/k8sxio/kube-scheduler v1.19.5 350a602e5310 2 years ago 45.6MB
registry.aliyuncs.com/k8sxio/kube-apiserver v1.19.5 72efb76839e7 2 years ago 119MB
registry.aliyuncs.com/k8sxio/etcd 3.4.13-0 0369cf4303ff 3 years ago 253MB
registry.aliyuncs.com/k8sxio/coredns 1.7.0 bfe3a36ebd25 3 years ago 45.2MB
calico/pod2daemon-flexvol v3.13.1 e8c600448aae 3 years ago 111MB
calico/cni v3.13.1 6912ec2cfae6 3 years ago 207MB
registry.aliyuncs.com/k8sxio/pause 3.2 80d28bedfe5d 3 years ago 683kB
#
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
初始化 worker节点
在 master 节点上执行,生成一个 token 信息。
# kubeadm token create --print-join-command
W0910 21:05:25.880930 14411 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
kubeadm join apiserver.demo:6443 --token df4ed3.9ma9032slc9j0ujh --discovery-token-ca-cert-hash sha256:a2a656b76c50c30c59f3db0cf13ecc75daa4755eca7508734680beb1abd31243
#
针对所有的 worker 节点执行
# export MASTER_IP=192.168.59.157
# export APISERVER_NAME=apiserver.demo
# echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
# kubeadm join apiserver.demo:6443 --token df4ed3.9ma9032slc9j0ujh --discovery-token-ca-cert-hash sha256:a2a656b76c50c30c59f3db0cf13ecc75daa4755eca7508734680beb1abd31243
检查初始化结果
在 master 节点上执行
如下那个镜像无法自动下载,那就手动下载一下。
Master 节点上有如下的镜像
Worker 节点上的镜像
到此, kubernetes 集群就安装部署完成,今天的主题分享,使用 kuboard 安装 kubernetes 集群也就结束了。
写在最后
在不断的项目实施过程中,也不断的在经验总结,个人能力的提升还需要不断的学习,和大家共勉,文章中的分享有不恰当甚至错误的理解,也希望能够得到大家的指正,留言多交流。如对各位有帮助的,也请动动发财的手,点赞点个关注,也是对我的一种鼓励,谢谢各位。