准备工作:
- 切换用户:su root
- 关闭防火墙: sudo ufw diasble
- 关闭swap:
systemctl stop swap.target
systemctl status swap.target
systemctl disable swap.target #开机禁用
systemctl stop swap.img.swap
systemctl status swap.img.swap关闭虚拟交换分区
vim /etc/fstab
将 包含swap 的一行注释掉
- 更新apt: apt-get update
- 时间同步
先查看时区是否正常,不正确则替换为上海时区
date
timedatectl set-timezone Asia/Shanghai #设置时区
apt -y install ntp #安装ntp服务
systemctl start ntp
systemctl enable ntp
docker_25">安装docker
安装docker:
apt install -y docker.io
systemctl status docker
systemctl enable docker:开机自启
更换docker镜像地址:
sudo vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.m.daocloud.io","https://p5lmkba8.mirror.aliyuncs.com","https://registry.docker-cn.com"]
}下面选一个:
a. 阿里云国内源加速:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
b. "http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn"
c. "https://dockerpull.org","https://docker.unsee.tech/","https://docker.1panel.live/","https://docker.udayun.com/","https://docker.nastool.de/"
d. "https://docker.mirrors.ustc.edu.cn"
e. "https://alzgoonw.mirror.aliyuncs.com"
f. "http://hub-mirror.c.163.com","https://registry.docker-cn.com"若还提示Error response from daemon可试试修改以下文件:
sudo vim /etc/resolv.conf
把nameserver 127.0.0.53 改成nameserver 8.8.8.8可查看镜像地址是否修改成功:sudo docker info修改后必须重启:
sudo systemctl daemon-reload
sudo systemctl restart docker可查询镜像验证地址是否可用:docker search hello-world
安装kubeamd、kubectl、kubelet安装脚本
执行(可创建sh脚本执行):
#!/bin/bash
apt update && apt install apt-transport-https
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
apt-get update
apt-cache madison kubelet kubectl kubeadm |grep '1.22.7-00'
apt install -y kubelet=1.22.7-00 kubectl=1.22.7-00 kubeadm=1.22.7-00
禁用swap
vim /etc/default/kubeletKUBELET_EXTRA_ARGS="--fail-swap-on=false"systemctl daemon-reload && systemctl restart kubelet
修改cgroup管理器
vim /etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https"] #注意这个用自己的
}systemctl restart docker
systemctl restart kubelet
克隆两个worker
修改hostname: hostnamectl set-hostname k8s-worker1
创建集群
查看kubectl version
初始化集群 master、两个worker同样都要执行
kubeadm init \--kubernetes-version=v1.22.7 \--image-repository registry.aliyuncs.com/google_containers \--pod-network-cidr=10.24.0.0/16 \--ignore-preflight-errors=Swap如果失败了,基本都是所需的几个设置的问题:
swap没有关闭
ufw 没关
cgroup管理器没有修改
下载的kubeadm没有指定小于1.25.0,因为1.25.0之后k8s使用了containerd。
这个时候使用
kubeadm reset
充值kubeadm
然后检查错误,重新kubeadm init即可
记录得到的信息
Your Kubernetes control-plane has initialized successfully! …kubeadm join
执行.kube配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
配置calico网络
wget curl https://projectcalico.docs.tigera.io/manifests/calico.yaml
kubectl apply -f calico.yaml
master查看节点
kubectl get nodes
应该只有master
两个worker执行:
把master 记录得到的信息最后一行kubeadm join...执行
重新生成一条:kubeadm token create --print-join-command如果出现文件已存在错误: rm -rf /etc/kubernetes/manifests /etc/kubernetes/kubelet.conf /etc/kubernetes/pki/ca.crt
如果出现端口已占用: lsof -i :11250 kill -9 pid
可尝试:kubeadm reset
再次去master查看节点
kubectl get nodes
出现一个master两个worker就算成功
安装 Kuboard v3 - 内建用户库
官方安装: 地址
sudo docker run -d \--restart=unless-stopped \--name=kuboard \-p 80:80/tcp \-p 10081:10081/tcp \-e KUBOARD_ENDPOINT="http://内网IP:80" \-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \-v /root/kuboard-data:/data \eipwork/kuboard:v3# 也可以使用镜像 swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载。# 请不要使用 127.0.0.1 或者 localhost 作为内网 IP \# Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server \
访问 Kuboard v3.x
在浏览器输入 http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:
用户名: admin
密 码: Kuboard123
添加已有 Kubernetes 集群到 Kuboard
进去后使用token方式跟着操作就行
注意api service要用https 端口一般是6443