K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

这篇具有很好参考价值的文章主要介绍了K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0、k8s安装、docker安装

参考:前两步Ubuntu云原生环境安装,docker+k8s+kubeedge(亲测好用)_爱吃关东煮的博客-CSDN博客_ubantu部署kubeedge

 配置节点gpu:

K8S调用GPU资源配置指南_思影影思的博客-CSDN博客_k8s 使用gpu

1、重置和清除旧工程:每个节点主机都要运行

kubeadm reset
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

2、部署新的k8s项目:

只在主节点运行,apiserver-advertise-address填写主节点ip

sudo kubeadm init \
--apiserver-advertise-address=192.168.1.117 \
--control-plane-endpoint=node4212 \
--image-repository  registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.21.10 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

主节点完成后,子节点运行主节点完成后展示的join命令

3、装网络插件

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml

等待完成

4、装bashboard:主节点运行

sudo kubectl apply -f /dashbord.yaml

sudo kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
将type: ClusterIP 改为 type: NodePort
# 找到端口,关闭对应防火墙
sudo kubectl get svc -A |grep kubernetes-dashboard

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

任意主机ip:31678为实际访问连接(https://192.168.1.109:31678/)

 验证所有pod为run状态,否则检查前面步骤

kubectl get pods --all-namespaces -o wide
#查看pod状态
kubectl describe pod  kubernetes-dashboard-57c9bfc8c8-lmb67 --namespace kubernetes-dashboard
#打印log
kubectl logs nvidia-device-plugin-daemonset-xn7hx --namespace kube-system

创建访问账号

kubectl apply -f /dashuser.yaml

获取访问令牌,在主节点运行,每天都会更新

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

 填入token

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

5、创建镜像并上传dockerhub:

查看本地镜像:docker images

登陆docker账户

给docker打标签,左:本地名:tag 右hub用户名/仓库名:tag
docker tag deeplabv3plus:1.0.0 chenzishu/deepmodel:labv3

上传hub
docker push chenzishu/deepmodel:labv3

6、dashboard使用

 创建deploymentK8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

应用名随意,镜像地址填写docherhub上对应镜像地址(chenzishu/deepmodel:pytorch)

等待容器运行,需要时间

K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

########
#pod启动后一直重启,并报Back-off restarting failed container
#找到对应的deployment添加 
command: ["/bin/bash", "-ce", "tail -f /dev/null"]
########

 K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

7、运行pod:

显示本地容器:docker ps -a 

找到容器:

kubectl get pods --all-namespaces -o wide

 进入容器:

kubectl exec -it segnet-747b798bf5-4bjqk /bin/bash

查看容器中文件:

ls

 nvidia-smi查看容器是否可以调用gpu

8、容器使用显卡资源,gpu资源分片

https://gitcode.net/mirrors/AliyunContainerService/gpushare-scheduler-extender/-/blob/master/docs/install.md

先安装nvidia-docker2:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

 

sudo apt-get update

sudo apt-get install -y nvidia-docker2

sudo systemctl restart docker

#测试
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

update可能会报错:参见官方文档Conflicting values set for option Signed-By error when running apt update

E: Conflicting values set for option Signed-By regarding source https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/ /: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg !=
E: The list of sources could not be read.

解决方法:

grep -l "nvidia.github.io" /etc/apt/sources.list.d/* | grep -vE "/nvidia-container-toolkit.list\$"

删除列出的文件即可

安装 gpushare-device-plugin 之前,确保在 GPU 节点上已经安装 Nvidia-Driver 以及 Nvidia-Docker2,同时已将 docker 的默认运行时设置为 nvidia:

配置runtime:/etc/docker/daemon.json

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

GPU Sharing 部署

再参考阿里开发文档,写的很详细 :配置、使用nvidia-share:https://developer.aliyun.com/article/690623

K8S 集群使用阿里云 GPU sharing 实现 GPU 调度 - 点击领取 (dianjilingqu.com)

部署 GPU 共享调度插件 gpushare-schd-extender

cd /tmp/
curl -O https://raw.githubusercontent.com/AliyunContainerService/gpushare-scheduler-extender/master/config/gpushare-schd-extender.yaml
kubectl create -f gpushare-schd-extender.yaml
# 需要能够在 master 上进行调度,在 gpushare-schd-extender.yaml 中将
# nodeSelector:
#    node-role.kubernetes.io/master: ""
# 这两句删除,使 k8s 能够在 master 上进行 GPU 调度

### 无法下载参考如下链接:
wget http://49.232.8.65/yaml/gpushare-schd-extender.yaml

部署设备插件 gpushare-device-plugin

cd /tmp/
wget https://raw.githubusercontent.com/AliyunContainerService/gpushare-device-plugin/master/device-plugin-rbac.yaml
kubectl create -f device-plugin-rbac.yaml
wget https://raw.githubusercontent.com/AliyunContainerService/gpushare-device-plugin/master/device-plugin-ds.yaml
# 默认情况下,GPU 显存以 GiB 为单位,若需要使用 MiB 为单位,需要在这个文件中,将 --memory-unit=GiB 修改为 --memory-unit=MiB
kubectl create -f device-plugin-ds.yaml

### 无法下载参考如下链接:
wget http://49.232.8.65/yaml/device-plugin-rbac.yaml
wget http://49.232.8.65/yaml/device-plugin-ds.yaml

  为 GPU 节点打标签

# 为了将 GPU 程序调度到带有 GPU 的服务器,需要给服务打标签 gpushare=true

kubectl get nodes
# 选取 GPU 节点打标
kubectl label node <target_node> gpushare=true
kubectl describe node <target_node>

更新 kubectl 可执行程序

wget https://github.com/AliyunContainerService/gpushare-device-plugin/releases/download/v0.3.0/kubectl-inspect-gpushare
chmod u+x kubectl-inspect-gpushare
mv kubectl-inspect-gpushare /usr/local/bin

### 无法下载参考如下链接:
wget http://49.232.8.64/k8s/kubectl-inspect-gpushare

 查看 GPU 信息:若能看到 GPU 信息,则代表安装成功

root@dell21[/root]# kubectl inspect gpushare
NAME         IPADDRESS    GPU0(Allocated/Total)  PENDING(Allocated)  GPU Memory(GiB)
10.45.61.22  10.45.61.22  0/7                    2                   2/7
------------------------------------------------------
Allocated/Total GPU Memory In Cluster:
2/7 (28%)  

9、部分问题

pod无法启动、资源不足

#设置污点阈值
systemctl status -l kubelet
#文件路径
/etc/systemd/system/kubelet.service.d/
#放宽阈值
#修改配置文件增加传参数,添加此配置项 --eviction-hard=nodefs.available<3%
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --eviction-hard=nodefs.available<3%"

systemctl daemon-reload
systemctl  restart kubelet

pod反复重启:文章来源地址https://www.toymoban.com/news/detail-419279.html

pod启动后一直重启,并报Back-off restarting failed container
找到对应的deployment 
command: ["/bin/bash", "-ce", "tail -f /dev/null"]

spec:
    containers:
    - name: test-file
    image: xxx:v1
    command: ["/bin/bash", "-ce", "tail -f /dev/null"]
    imagePullPolicy: IfNotPresent

到了这里,关于K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Sentinel-dashboard安装(k8s部署)

    目录 Sentinel-dashboard安装(k8s部署) 一.拉取镜像并推送到私库 二.准备sentinel statefulset部署配置文件 三.部署并访问sentinel 一.拉取镜像并推送到私库 这里选择的是docker hub已经有人制作好的Sentinel镜像 二.准备sentinel statefulset部署配置文件 因为该配置使用了PVC,所以要新增一个

    2024年02月08日
    浏览(43)
  • K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示

    目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命令空间,相当于它们在同一台机器上一样,可以用

    2024年02月05日
    浏览(47)
  • Kubeadm 部署 k8s 使用国内镜像源

    Kubernetes官方文档的安装过程中,有些地方需要使用国内的镜像源才能完成 这篇文章整合了所有需要替换国内镜像的地方,供参考 操作系统:Rocky 9(最小安装) 容器运行时:containerd k8s阿里云源 docker-ce阿里云源 安装containerd时需要,实测输入这一行命令就可以了

    2024年02月11日
    浏览(45)
  • Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)

    不知道大伙是如何安装 K8s,特别还是集群的时候,我上一次安装搭建的时候,那个恶心到我了,真的是一步一个脚印走完整个搭建流程,爬了不少坑。 于是,才有了今天的文章,到底有没有可以一键完美部署 k8s 并且附带 Dashboard……?那这么问了肯定是有的,否则岂不是在

    2024年02月03日
    浏览(54)
  • 【 云原生 | K8S 】部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理

    目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命令空间,相当于它们在同一台机器上一样,可以用

    2024年01月22日
    浏览(54)
  • K8s(kubernetes)集群搭建及dashboard安装、基础应用部署

    本质是一组服务器集群,在集群每个节点上运行特定的程序,来对节点中的容器进行管理。实现资源管理的自动化。 自我修复 弹性伸缩 服务发现 负载均衡 版本回退 存储编排 控制节点(master)-控制平面 APIserver :资源操作的唯一入口 scheduler :集群资源调度,将Pod调度到node节

    2024年02月08日
    浏览(52)
  • 通过docker+cri-dockerd部署k8s集群环境(含harbor镜像仓库)

    目录 一.虚拟机准备 二.基础环境配置(各个节点都做) 1.IP和hosts解析 2.防火墙和selinux 3.安装基本软件 4.配置时间同步 5.禁用swap分区 6.修改内核参数并重载 7.配置ipvs 三.docker环境(各个节点都做) 1.配置软件源并安装docker-ce 2.配置docker加速 四.cri环境配置(各个节点都做)

    2024年02月05日
    浏览(67)
  • k8s使用helm部署Harbor镜像仓库并启用SSL

    参照:https://zhaoll.blog.csdn.net/article/details/128155767 有多种安装方式,根据自己的k8s版本选择合适的helm版本 参考:https://blog.csdn.net/qq_30614345/article/details/131669319 我们这里使用helm安装harbor,项目地址:https://github.com/goharbor/harbor-helm (1)拉取项目文件 (2)解压并修改配置 tar -z

    2024年02月16日
    浏览(41)
  • 【云原生-K8s】镜像漏洞安全扫描工具Trivy部署及使用

    基础描述 Trivy是一个开源的容器镜像漏洞扫描器,可以扫描常见的操作系统和应用程序依赖项的漏洞。它可以与Docker和Kubernetes集成,帮助用户在构建和部署容器镜像时发现安全漏洞。Trivy支持多种漏洞数据库,包括Red Hat、Debian、Alpine等,可以根据用户的需求进行配置。Trivy还

    2024年02月05日
    浏览(58)
  • K8S的dashboard使用账号密码登录

    原文网址:K8S的dashboard使用账号密码登录-CSDN博客 本文介绍K8S的dashboard使用账号密码登录的方法。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵 分享靠谱的Java高级实战,包

    2024年02月02日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包