我的上一篇安装kubesphere和k8s,由于没钱买云服务器所以在笔记本上用VMware搭建的k8s集群和kubesphere,由于网络,linux环境设置等会遇到很多问题,安装也比较麻烦。根据查看官网有一种all in one的安装方式,一键式安装。官网链接:在 Linux 上以 All-in-One 模式安装 KubeSphere
官网上主要有三种安装方式,一种是我上一篇博客的搭建k8s集群后再安装kubesphere,还有就是用官方提供的go语言工具kk,进行安装。但是这种all in one的安装方式是需要提供给官方你的虚拟机地址才能进行安装的,官方的脚本会自动通过虚拟机账号和密码连接到你的虚拟机,而且你的虚拟机地址是需要外网能访问的才可以。我笔记本创建的虚拟机怎么会有外网域名呢,所以all in one的安装方法在我这里并不适用。
在这里我选择使用官方的单节点安装,在linux上安装单节点的kubesphere,只要装上了这个接待你一定是主节点。接下来再安装分节点让它加入主节点就行了。那么现在开始安装。
首先我准备的是一台4核6G的vmware创建的虚拟机。虚拟机准备可以看我上一篇更详细的k8s和kubesphere的安装。
首先安装k8s需要开放很多端口号这里我就直接关闭防火墙了。
systemctl stop firewalld
首先给虚拟机命名不能用localhost,我这里就用node1了。
hostnamectl set-hostname node1
安装docker环境
sudo yum remove docker*
sudo yum install -y yum-utils
#配置docker的yum地址
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装指定版本
sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
# 启动&开机启动docker
systemctl enable docker --now
# docker加速配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
准备官方提供的kubekey
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
chmod +x kk
安装的时候需要一个工具,自行安装可能会出错,我们提前安装
yum install -y conntrack
执行自动安装程序
./kk create cluster --with-kubernetes v1.20.4 --with-kubesphere v3.1.1
出现以下信息就证明安装成功了
由于是单节点我们直接访问测试一下,测试结果如下
出现这个界面说明安装成功了。查看所有的pod
kubectl get pods -A
pod的信息打印如下。
如果我们想搭建集群,那就再准备几个虚拟机安装k8s的基本环境,加入这个主节点就好了。
现在我空间不够了,只演示一个。准备一个虚拟机,我的是4核4G的。
首先关闭防火墙:
systemctl stop firewalld
准备docker环境:
sudo yum remove docker*
sudo yum install -y yum-utils
#配置docker的yum地址
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装指定版本
sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6
# 启动&开机启动docker
systemctl enable docker --now
# docker加速配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
设置work节点的主机名
hostnamectl set-hostname node2
设置work节点的系统环境
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
#允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
查看主节点的kublete,kubeadm,kubectl版本
#查看kubeadm版本
kubeadm version
#查看kubectl版本
kubectl version
#查看kubelet版本
kubelet --version
以上均是v1.20.4版本
work节点安装指定版本的kubelet、kubeadm、kubectl
#配置k8s的yum源地址
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#安装 kubelet,kubeadm,kubectl
sudo yum install -y kubelet-1.20.4 kubeadm-1.20.4 kubectl-1.20.4
#启动kubelet
sudo systemctl enable --now kubelet
#所有机器配置master域名
echo "192.168.31.128 node1" >> /etc/hosts
master和work节点同步一下时间
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
去主节点生成一下令牌
#新令牌
kubeadm token create --print-join-command
先测试一下虚拟机能否ping通主节点,确定成功后,
work节点加入该节点即可
这个生成的令牌中的lb.kubesphere.local:6443是访问不了的
kubeadm join lb.kubesphere.local:6443 --token m2x8lq.v1xeqxrgwfx6gduq --discovery-token-ca-cert-hash sha256:f3b1381140359f8bfee6129c32675b490d553056cbfc4fdd2b2de3a7710ac341
可以替换为主机名
kubeadm join 192.168.31.128:6443 --token m2x8lq.v1xeqxrgwfx6gduq --discovery-token-ca-cert-hash sha256:f3b1381140359f8bfee6129c32675b490d553056cbfc4fdd2b2de3a7710ac341
这种是最小化安装,如果想开启什么组件可以去官方文档启用可插拔组件
参考在安装后启用可插拔组件即可。
其实只需要用admin账号登录进入kubesphere,点击左上角。
选择集群管理
选择自定义资源
搜索clusterconfiguration
点击进入
在配置文件中开启你需要的组件。
例如开启devops,将false改为true
虚拟机查看进程
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
可以看到5个任务在准备
等待他完成,进入kubesphere查看,发现devops以后安装上了。