horovod命令参数解析

Horovod是Uber于2017年发布的一个易于使用的高性能的分布式深度学习训练框架,支持TensorFlow、Keras、PyTorch和ApacheMXNet。Horovod的名字来自于俄国传统民间舞蹈,舞者手牵手围成一个圈跳舞,与分布式训练使用Horovod互相通信的场景很像。Horovod的发展吸取了Facebook"TrainingImageNetIn1Hour"与百度"RingAllreduce"的优点,在保证分布式训练性能的同时,兼顾了前端的简洁和对不同深度学习框架的支持,使用...

阅读全文

K8s配置管理configmap和secret

k8s中的secret和configmap是为了让POD和配置解耦,使得从集群外部可以想容器内部注入配置信息、环境变量等功能ConfigMap扮演了K8S集群中配置中心的角色,ConfigMap定义了Pod的配置信息,可以以存储卷的形式挂载至Pod中的应用程序配置文件目录,从ConfigMap中读取配置信息ConfigMap是明文保存的,如果用来保存数据库账号密码这类信息可以使用通过secret来保存,secret的功能和ConfigMap一样,不过secret是通过Base64的编码机制保存配置信息可以通过命令行的方式来创建configmap,如下ku...

阅读全文

k8s亲和性和反亲和性

k8s中的亲和性主要是用来做pod的调度策略,可以使pod调度到满足指定条件的节点通常我们还需要给node设置标签,pod通过设置的label标签相关的策略可以使pod关联到对应的label节点上我们先来看下测试环境的node标签kubectl get node --show-labelsNAME         STATUS   ROLES     &...

阅读全文

K8s存储资源对象StorageClass

今天学习下持久化存储的资源对象StorageClass,这个出现主要是通过StorageClass的定义,管理员可以将存储资源定义为某种类型的资源,比如快速存储、慢速存储等,kubernetes根据StorageClass的描述就可以非常直观的知道各种存储资源的具体特性了,这样就可以根据应用的特性去申请合适的存储资源了。我们此处存储还是用NFS,创建StorageClass大概有以下几步1)创建Service Account用来管控NFS provisioner在k8s集群中运行的权限2)创建StorageClass,负责...

阅读全文

K8s存储emptyDir/hostPath/pv与pvc

K8s存储emptyDir、hostPath、pv和pvcpod容器组在宕机或者删除以后,数据会随着pod的销毁而消失,所以需要使用一些存储方案来做数据的持久化,目前有很多存储方案,主要有emptyDir、hostPath、NFS、云存储我们下面就通过例子来看看上述几种存储方式的区别1.emptyDiremptyDir类型的volume在pod分配到node上时被创建,kubernetes会在node上自动分配一个目录,因此无需指定宿主机node上对应的目录文件。这个目录的初始内容为空,当Pod从node上移除时,emptyDir中的数据会被永久删除。e...

阅读全文

K8s配置master可运行调度pod

默认配置下Kubernetes不会将Pod调度到Master节点,看官网意思是说有安全的考量但是我们本地资源有限,也顺便学习下k8s的污点相关知识,所以先看下如何让master也可以参与进行pod的调度可以使用一下命令进行查看kubectl describe node k8s-master |grep TaintsTaints:             node-role....

阅读全文

Centos7部署NFS网络文件系统

现在都基本使用Centos7,所以这次重新写一个Centos7的,记录下方便以后使用1.系统约定NFS Server 192.168.137.10NFS Client 192.168.137.11共享目录/data/nas2.基础环境配置确保防火墙和selinux关闭systemctl stop firewalldsystemctl disable firewalldsed -i 's/enforcing/disabled/'&...

阅读全文

ubuntu18.04部署k8s集群

之前有用centos7的环境部署过,这次把ubuntu18.04的版本也记录一下,之前的笔记可以查看https://sulao.cn/post/802.html部署过程差不了太多,这次ubuntu版本部署网络组建选择的是calico,我们直接查看下部署过程吧系统约定192.168.137.11     k8s-master192.168.137.12      k8s-node1192.168.137.13  &nbs...

阅读全文

MySQL CPU占用过高的排查方法

MySQLCPU过高的常见原因有以下几点业务连接过多,并发太高系统环境配置不合理SQL语句效率低、不合理硬件问题鉴于以上几点常见问题,我们可以通过合适的手段来进行排查,来确认故障原因1.先从系统层面进行排查可以使用top命令来查看mysq的进程来确认mysql是都CPU占用过高通过top命令可以查看到CPU使用率高的mysql进程的PID,然后可以通过PID来查看具体的线程情况,命令是top -H -p <PID>通过此命令可以查看到CPU使用异常的线程也可以通过pidstat命令来查看pidstat ...

阅读全文

k8s配置使用ipvs替代iptables做代理转发

从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是采用的hash表,因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。1.k8s开启ipvs的方法首先我们需要在内核中开启相关模块cat >> /etc/sysctl.conf << EOFnet.ipv4.ip_forward = 1net.bridge.bridge-nf-ca...

阅读全文