使用安装kuboard面板的方式安装Kubernetes集群

Posted by Dayong Chan on 2019-11-24
Words 1k and Reading Time 4 Minutes
Viewed Times

kuboard是一款Kubernetes 微服务管理面板,简单好用,而且还免费,安装起来非常简单,关键是成功率非常高,之前按其他教程来安装k8s和管理面板的时候基本都会遇到各种的问题,这个就非常省心。

一、准备

在 master 节点和 worker 节点都要执行

script
1
cat /etc/redhat-release

此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字
script
1
hostname

修改 hostname
script
1
hostnamectl set-hostname your-new-host-name

查看修改结果
script
1
hostnamectl status

设置 hostname 解析
script
1
echo "127.0.0.1   $(hostname)" >> /etc/hosts

script
1
ip route show

二、安装docker及kubelet

安装kubelet

在 master 节点和 worker 节点都要执行

script
1
curl -sSL https://kuboard.cn/install-script/v1.16.3/install_kubelet.sh | sh

初始化 master 节点

只在 master 节点执行

script
1
2
3
4
5
6
7
8
9
# 替换 x.x.x.x 为 master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo 为 您想要的 dnsName
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.3/init_master.sh | sh

检查 master 初始化结果

只在 master 节点执行

script
1
2
3
4
5
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

# 查看 master 节点初始化结果
kubectl get nodes -o wide

初始化 worker节点

获得 join命令参数

只在 master 节点执行

script
1
kubeadm token create --print-join-command

执行上面的命令后可获取kubeadm join 命令及参数

script
1
2
# kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

该 token 的有效时间为 2 个小时,2小时内,您可以使用此 token 初始化任意数量的 worker 节点。

初始化worker

针对所有的 worker 节点执行

只在 worker 节点执行

script
1
2
3
4
5
6
7
8
# 替换 x.x.x.x 为 master 节点的内网 IP
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver.demo
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts

# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

检查初始化结果

查看节点的初始化情况

只在 master 节点执行

script
1
kubectl get nodes -o wide

或者执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态

script
1
watch kubectl get pod -n kube-system -o wide

如果执行下面的命令并输入如下的内容的话就表示安装完毕了
script
1
2
3
4
5
[root@demo-master-a-1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
demo-master-a-1 Ready master 5m3s v1.16.3
demo-worker-a-1 Ready <none> 2m26s v1.16.3
demo-worker-a-2 Ready <none> 3m56s v1.16.3

安装默认的组件和服务

添加K8s和kuboard默认的组件和服务

script
1
2
3
kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl apply -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml

如果需要删除K8s和kuboard默认的组件和服务的话可以执行下面的命令进行删除
script
1
2
3
kubectl delete -f https://addons.kuboard.cn/metrics-server/0.3.6/metrics-server.yaml
kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml
kubectl delete -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml

三、获取登录令牌

执行下面的命令获取kuboard的登录令牌

script
1
2
# 如果您参考 www.kuboard.cn 提供的文档安装 Kuberenetes,可在第一个 Master 节点上执行此命令
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)

输入的内容类似下面的
1
eyJhbGciOiJSUzI1NiIsImtpZCI6InFsTlZYOEMxbDQ3UU81dm9XVWZOTk5weUx4azFYUS1udURlTDhGX2hfX3cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tYmdiZ3QiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYTJhMDdhNWYtZGIyMC00N2JkLWFmZmUtYjU3YzdhYTUwNGU3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.fIwLgTu_KL4cIK7qvsy_FdMw5482v77adTjsb1oYdfrJOdj5r0iJAmc-TsjHJCQlagY5o4lO3l-CEySynLIbla8Uahmo-10XeTfeZdK4y1NO09uhDjxtmZFQlmu94QebZa62KX9YlkizRDlTuHnaksCi1QA7nj21LgPuKxIt4j172Un0aiZPboZese-ASGef5nU7r7u-enW72maMN-YLfQQKXoKN0h99xnvDfJnF3Q6wOQwc4VQhqKLTOANOBDeoa4ro2COuPOGuXX3-2crZgvXSDR-taQOpoKmSuYhPck5POdQg7mr9Go7mXVIOfRl86lR8BjD9ou7kn7YWQwFNmw

复制上面的令牌然后输入master的ip地址就可以进行登录使用了

其他

修改端口限制

script
1
2
vim /etc/kubernetes/manifests/kube-apiserver.yaml
- --service-node-port-range=1-65535

参考网站: https://kuboard.cn/install/install-k8s.html


本站版权使用署名-非商业性使用-禁止演绎 4.0 国际,转载请保留原文链接及作者。