1.部署一个docker私仓
mkdir /opt/docker/registry
#配置仓库密码
mkdir /opt/docker/auth
cd /opt/docker/auth
htpasswd -Bbn admin admin > htpasswd
#运行docker私仓服务,下面端口5000:5000 前面的5000对应本机端口可以自定义
docker run -itd \
-v /opt/docker/registry:/var/lib/registry \
-v /opt/docker/auth:/auth \
-p 5000:5000 \
--restart=always \
--name registry \
registry:latest
#配置私仓http访问
mkdir -p /etc/docker
echo '{ "insecure-registries" : ["xxx.xxx.xx.xx:5000"] }' | sudo tee /etc/docker/daemon.json
systemctl restart docker
2.在所有k8s work节点服务器上,都执行以下操作
vim /etc/containerd/config.toml
将下面127.0.0.1换成上一步docker私仓地址,目的可以通过http方式拉取镜像
vim /etc/containerd/config.toml
# 搜索 plugins."io.containerd.grpc.v1.cri".registry.mirrors 找到对应位置,添加如下内容,
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
# 如下这些仓库可以作为公共仓库使用
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","http://127.0.0.1:5000"]
# 内部私有仓库配置
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."127.0.0.1:5000"]
endpoint = ["http://127.0.0.1:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
# 内部私有仓库认证信息
[plugins."io.containerd.grpc.v1.cri".registry.configs."127.0.0.1:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs."127.0.0.1:5000".tls]
insecure_skip_verify = true # 是否跳过证书认证
修改结束后,执行 systemctl restart containerd 刷新配置
systemctl restart containerd
3.部署k8s客户端
ip均需要替换成服务器ip
mkdir /opt/docker/k8s-data
#运行k8s客户端,注意下面ip需要换成本机服务器ip,前面的80端口可以自定义
docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 80:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://127.0.0.1:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /opt/docker/k8s-data:/data \
eipwork/kuboard:v3
页面访问http://127.0.0.1:80即可进入客户端管理页面
默认密码 admin/Kuboard123
4.本地服务镜像安装
构建后需要push,不然私仓其实是找不到该镜像的
docker build -t 127.0.0.1:5000/gateway:1.0 --build-arg JAR_NAME=gateway.jar .
# 构建完后执行push
docker push 127.0.0.1:5000/gateway:1.0
# 如果存在很多tag为none的镜像可以执行下面命令删除这些镜像
docker image prune
5.通过k8s客户端配置服务
参照第3部,登录Kuboard页面
6.导入k8s集群
参照以下步骤,
添加集群
选右侧的Kuboard Agent添加
输入名称和描述
确定
确定后显示如下页面
检查命令框内容,地址是否为k8s客户端的ip和端口
先到k8s主节点执行查看命令 kubectl get nodes,检查运行状态如下
粘贴命令框内容到k8s主节点机器里执行, 一定要到k8s主节点去执行,不是k8s客户端机器
执行结束后,点击页面的 我已经执行了导入命令按钮
等待大概1分钟,页面自动会变成如下样子
7.创建一个名称空间
如下图,依次点击,进入创建名称空间选择页面,
若是页面无法看到右侧的名称列表,在master节点服务器 参考如下地址操作
解决k8s访问报anonymous cannot get path的问题_message": "forbidden: user \"system:anonymous\" ca-CSDN博客创建名称为demo,确定,应用
8.选择一个名称空间
如下点击下拉箭头,选中上面创建的pdn名称,默认创建完自动选中
9部署一个服务
如下操作,也可以自定义一些副本数量之类的,名称不能有中文等特殊字符
再点击容器信息,点击添加工作容器,点击右侧创建按钮
弹框配置docker私仓地址,最后点击保存,应用,确定
填写容器信息,容器镜像可通过docker images去查看,最后点上面得保存