前提
-
已经安装docker
-
机器使用小写的hostname
hostname
建议你的机器把hostname改成小写,不然您会踩坑
- 官网的教程已经足够详实,推荐看官网教程
https://kubesphere.io/docs/v3.4/quick-start/all-in-one-on-linux/
安装依赖
sudo apt install conntrack
sudo apt install socat
下载Kubekey
$ curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh -
安装kk
添加执行权限
chmod +x kk
然后因为我们村里没有通网,和官网教程不同的是,官网使用了Google 的存储服务https://storage.googleapis.com 。
在中国大陆,我们无法访问,所以这里我们要把kkzone这个环境变量设置为cn,当设置为 cn 时,KubeKey 会使用适合中国大陆网络环境的镜像源和下载地址。
执行下面的指令
export KKZONE=cn
完成修改后,我们再来继续安装
注意这里要使用root用户进行安装
su root
截止我写文章的时候,官网的指令
./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.4.1
- 但是我用官网的指令装不上,最后会卡住然后说失败,我换了一下版本,用下面的指令成功了
./kk create cluster --with-kubernetes v1.23.10 --with-kubesphere v3.3.0
出现上面这个界面就是可以安装了,如果你没有出现yes/no,那你就需要检查你哪些条件不满足,比如下面这个图,就是没有安装conntrack,再回到前面的步骤安装conntrack就可以了
满足前提后,输入yes,然后就等待漫长的安装,我这边单节点花了1~2小时。
其他问题
如果你的hostname没有使用小写,遇到hostname名称问题
./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.4.1 输入yes继续执行,报错了,显示无法添加bdca-PowerEdge-T640
添加节点的时候,kk会获取我们的host,我们可以看到我机器的hostname是有大写的
hostname
但是/etc/kubernetes/kubelet.conf配置信息里,我们的节点却是小写的。
cat /etc/kubernetes/kubelet.conf
这是为什么呢,因为k8s的节点名称通常用于 DNS 记录。DNS 是不区分大小写的,使用全小写可以避免潜在的混淆和问题。它自己为了防止我们有问题自己都用的小写。所以和我们的冲突了,再添加我们的host name的时候就报错了。这个时候怎么办呢,你想到,哎,我们把我们机器的hostname改成小写就好了是不是。没错,我们来修改一下
sudo nano /etc/hosts
在我们的host里把小名写进去。
最后执行指令修改,然后hostname就没问题了。
sudo hostnamectl set-hostname bdca-poweredge-t640