文档说明
适用于小白玩家,增强k8s的游戏体验,如有不懂,可自行前往https://www.kuboard.cn/install/install-k8s.html查阅资料。
基础环境适配
常规的linux环境下部署应用的操作:
- hostname 不要使用系统默认的hostname,自行设置hostname
#将主机名设置为nejore
hostnamectl set-hostname nejore
echo "127.0.0.1 master" >> /etc/hosts
- 确认网卡地址 通过命令确认默认使用的网卡及网卡IP地址
root@localhost ~]# ip route show
default via 192.168.239.1 dev ens33 proto static metric 100
192.168.239.0/24 dev ens33 proto kernel scope link src 192.168.239.101 metric 100
[root@localhost ~]# ip a s
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:db:0c:32 brd ff:ff:ff:ff:ff:ff
inet 192.168.239.101/24 brd 192.168.239.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2a85:e69:9524:1495/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 设备信息确认
任意节点 centos 版本为 7.6 / 7.7 或 7.8
任意节点 CPU 内核数量大于等于 2,且内存大于等于 4G
任意节点 hostname 不是 localhost,且不包含下划线、小数点、大写字母,且主节点的主机名不为master
任意节点都有固定的内网 IP 地址
任意节点都只有一个网卡,如果有特殊目的,我可以在完成 K8S 安装后再增加新的网卡
任意节点上 Kubelet使用的 IP 地址 可互通(无需 NAT 映射即可相互访问),且没有防火墙、安全组隔离
任意节点不会直接使用 docker run 或 docker-compose 运行容器
- 开始安装
# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.18.6 用于指定 kubenetes 版本,支持所有 1.18.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.18.x/install_kubelet.sh | sh -s 1.18.6
- 初始化master
# 只在 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 "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.18.x/init_master.sh | sh -s 1.18.6
# 只在 master 节点执行
# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide
# 查看 master 节点初始化结果
kubectl get nodes -o wide
- 初始化slave
现在master上获取命令
# 只在 master 节点执行
[root@nejore ~]# kubeadm token create --print-join-command
W0820 09:16:18.439647 39574 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
kubeadm join master.cn:6443 --token 45jh36.tnn5ebvigb5i7vty --discovery-token-ca-cert-hash sha256:6369fbae6eb48f25a88575d523bdc2962f6c4355b650e6550c1d3a74b0ca1ec6
然后将结果中的命令复制到slave上执行即可
slave上执行
kubeadm join master.cn:6443 --token 45jh36.tnn5ebvigb5i7vty --discovery-token-ca-cert-hash
- 验证
[root@nejore ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
nejore Ready master 18h v1.18.6 192.168.1.110 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 docker://19.3.8
slave Ready <none> 96m v1.18.6 192.168.1.120 <none> CentOS Linux 7 (Core) 3.10.0-957.el7.x86_64 docker://19.3.8