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方式拉取镜像
python
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 刷新配置
python
systemctl restart containerd
3.部署k8s客户端
ip均需要替换成服务器ip
python
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,不然私仓其实是找不到该镜像的
python
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博客](https://blog.csdn.net/baidu_38432732/article/details/106469037 "解决k8s访问报anonymous cannot get path的问题_message": "forbidden: user \"system:anonymous\" ca-CSDN博客")创建名称为demo,确定,应用
8.选择一个名称空间
如下点击下拉箭头,选中上面创建的pdn名称,默认创建完自动选中
9部署一个服务
如下操作,也可以自定义一些副本数量之类的,名称不能有中文等特殊字符
再点击容器信息,点击添加工作容器,点击右侧创建按钮
弹框配置docker私仓地址,最后点击保存,应用,确定
填写容器信息,容器镜像可通过docker images去查看,最后点上面得保存