K8s客户端安装
-
前提
- K8s服务部署成功,如下
角色 | IP地址 | 操作系统 | 主机名 | Kubernetes版本 |
master节点 | 172.16.4.167 | CentOS 7.9 | k8s-master01 | v1.28.2 |
工作节点1 | 172.16.4.168 | CentOS 7.9 | k8s-worker01 | v1.28.2 |
工作节点2 | 172.16.4.169 | CentOS 7.9 | k8s-worker02 | v1.28.2 |
2. Docker私仓部署成功,并配置账号密码
Docker安装客户端
1.离线安装docker略
2.Docker安装kuboard
- 上传kuboard-v3.tar镜像包
- 导入镜像
docker load <kuboard-v3.tar
3.创建工作目录
mkdir /opt/kuboard-data
4.启动容器,需要占用80和10081端口,冲突自行修改,下面ip需要换成自己服务器的ip
docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 80:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://172.16.80.31:80" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-v /opt/kuboard-data:/data \
eipwork/kuboard:v3
5.查看客户端页面
http://ip:80
默认账号密码 admin/Kuboard123
K8s客户端使用
导入k8s集群
登录Kuboard页面,操作如下
- 添加集群
- 选右侧的agent添加
- 输入名称和描述
- 确定
确定后显示如下页面
复制命令框的地址,如图复制下面地址
浏览器访问并复制内容到kuboard-agent.yaml文件中
http://xxxx/kuboard-api/cluster/k8s-test/kind/KubernetesCluster/k8s-test/resource/installAgentToKubernetes?token=xV2Kf9sL03yMJuUQQVMWX7v0rlaF4Nhi
将kuboard-agent.yaml文件上传到k8s-master节点服务器中,
执行命令
kubectl apply -f ./kuboard-agent.yaml
执行结束后页面点击,我已经执行了导入命令,之后等待1分钟,页面自己会刷新,
变成就绪状态即导入成功
创建一个名称空间
如下图,依次点击,进入创建名称空间选择页面,
若是页面无法看到右侧的名称列表,在master节点服务器 参考如下地址操作
解决k8s访问报anonymous cannot get path的问题-CSDN博客
创建名称为icp,确定,应用
选择一个名称空间
如下点击下拉箭头,选中上面创建的icp名称
部署一个服务
如下操作
再点击容器信息,
配置服务名,镜像地址,变量等,再点击下图箭头指示的创建
输入docker私仓地址,用户密码和名称,最好把下面命令执行一下,看看配置是否正确,确定后左侧选择刚才的配置
点击左上角保存按钮,即发布服务成功
遇到的问题
1.导入k8s集群后看不到名称空间参考
解决k8s访问报anonymous cannot get path的问题-CSDN博客
2. 由于这是最新版k8s弃用了docker,拉取镜像需要用https方式,但是公司内网一般都是http,导致拉镜像失败,部署不了服务,解决方式如下:
在所有node节点服务器执行以下命令
vim /etc/containerd/config.toml
查找plugins."io.containerd.grpc.v1.cri".registry.mirrors
配置
修改如下,大家可以把下面配置的172.16.4.64:5000替换成自己docker私仓地址即可
注意 plugins."io.containerd.grpc.v1.cri".registry.configs 这些配置别重复了,重复启动服务会报错的
[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"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
endpoint = ["https://gcr.mirrors.ustc.edu.cn"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
endpoint = ["https://gcr.mirrors.ustc.edu.cn/google-containers/"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
endpoint = ["https://quay.mirrors.ustc.edu.cn"]
# 内部私有仓库配置
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."172.16.4.64:5000"]
endpoint = ["http://172.16.4.64:5000"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
# 内部私有仓库认证信息
[plugins."io.containerd.grpc.v1.cri".registry.configs."172.16.4.64:5000"] # 这行不确定要不要写上
[plugins."io.containerd.grpc.v1.cri".registry.configs."172.16.4.64:5000".tls]
insecure_skip_verify = true # 是否跳过证书认证
#ca_file = "/etc/containerd/172.16.4.64:5000/ca.crt" # CA 证书
#[plugins."io.containerd.grpc.v1.cri".registry.configs."172.16.4.64:5000".auth]
#username = "test" # 在harbor里单独创建的用户,授权访问指定项目
#password = "Test123456"
修改完后,重启containerd解决问题
systemctl daemon-reload
systemctl restart containerd