centos7.6 安装k8s单节点与kuboard

教程来源:https://kuboard.cn/install/install-k8s.html
检查 centos / hostname

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

cat /etc/redhat-release

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

不能使用 localhost 作为节点的名字

hostname

请使用 lscpu 命令,核对 CPU 信息

Architecture: x86_64 本安装文档不支持 arm 架构

CPU(s): 2 CPU 内核数量不能低于 2

lscpu

修改 hostname
如果您需要修改 hostname,可执行如下指令:

修改 hostname

hostnamectl set-hostname your-new-host-name

查看修改结果

hostnamectl status

设置 hostname 解析

echo "127.0.0.1 $(hostname)" >> /etc/hosts

检查网络
[root@demo-master-a-1 ~]$ ip route show
default via 172.21.0.1 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.21.0.0/20 dev eth0 proto kernel scope link src 172.21.0.12

[root@demo-master-a-1 ~]$ ip address
1: lo: 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
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:12:a4:1b brd ff:ff:ff:ff:ff:ff
inet 172.17.216.80/20 brd 172.17.223.255 scope global dynamic eth0
valid_lft 305741654sec preferred_lft 305741654sec

如果是腾讯云前面这些都不用操作。只需要在每个服务器都执行关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

  • 所有节点上 Kubernetes 所使用的 IP 地址必须可以互通(无需 NAT 映射、无安全组或防火墙隔离)

初始化 master 节点
关于初始化时用到的环境变量

  • APISERVER_NAME 不能是 master 的 hostname
  • APISERVER_NAME 必须全为小写字母、数字、小数点,不能包含减号
  • POD_SUBNET 所使用的网段不能与 master节点/worker节点 所在的网段重叠。该字段的取值为一个 CIDR 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改
    请将脚本最后的 1.19.0 替换成您需要的版本号, 脚本中间的 v1.19.x 不要替换

只在 master 节点执行

替换 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 "{APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.19.x/init_master.sh | sh -s 1.19.0
检查 master 初始化结果

只在 master 节点执行

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

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

查看 master 节点初始化结果

kubectl get nodes -o wide
初始化 worker节点
获得 join命令参数

只在 master 节点执行

kubeadm token create --print-join-command

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 节点执行

替换 x.x.x.x 为 master 节点的内网 IP

export MASTER_IP=x.x.x.x

替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME

export APISERVER_NAME=apiserver.demo
echo "{APISERVER_NAME}" >> /etc/hosts

替换为 master 节点上 kubeadm token create 命令的输出

kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303

检查初始化结果
在 master 节点上执行

只在 master 节点执行

kubectl get nodes -o wide

在 master 节点上执行

只在 master 节点执行

kubectl apply -f https://kuboard.cn/install-script/v1.19.x/nginx-ingress.yaml
查看 Kuboard 运行状态:
kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system
输出结果如下所示:
NAME READY STATUS RESTARTS AGE
kuboard-54c9c4f6cb-6lf88 1/1 Running 0 45s
获取Token
您可以获得管理员用户、只读用户的Token。此Token拥有 ClusterAdmin 的权限,可以执行所有操作

如果您参考 www.kuboard.cn 提供的文档安装 Kuberenetes,可在第一个 Master 节点上执行此命令

echo (kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
可获取token。然后就能通过nodepord的方式访问kuboard了。
http://任意一个Worker节点的IP地址:32567/
虚拟机安装可能因为网络问题卡在初始化。这个时候不适合这个教程,实测腾讯云上执行一次就能安装成功
至此为止安装完了k8s集群和nginx-ingress和kuboard。
还需要执行的操作:docker镜像加速

Docker中国 mirror

export REGISTRY_MIRROR="https://registry.docker-cn.com"

腾讯云 docker hub mirror

export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"

华为云镜像

export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"

DaoCloud 镜像

export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"

阿里云 docker hub mirror

export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/set_mirror.sh | sh -s ${REGISTRY_MIRROR}
systemctl restart kubelet # 假设您安装了 kubenetes
执行命令docker info查看结果。

你可能感兴趣的:(centos7.6 安装k8s单节点与kuboard)