
Devops - Kubernetes
T型人小付
任职于某游戏公司新加坡分部,自动化运维/python全栈/IT,梦想是35岁前可以不需要通过投简历的方式换工作。
展开
-
Rasa框架配合Kubernetes中StatefulSet完成训练数据的更新操作
在之前的博客《部署Rasa框架到Kubernetes集群并分配GPU资源》中,我们成功在k8s集群中部署了rasa框架。这一节我们来看看如何结合statefulset对这个部署进行改进。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录改进方向实际操作创建pv创建statefulset更新模型外部访问python客户端实现总结改进方向之前我们通过Deployment的方式去部署的Rasa框架,但是这样有个很明显的问原创 2020-06-05 17:08:27 · 1990 阅读 · 0 评论 -
【Kubernetes 021】Python客户端自动创建和销毁Kubernetes资源详解
学会了k8s的基本使用,下面就可以开始一些进阶的学习了,例如二次开发。想象有一个网页管理工具,管理人员只需要点击一个按钮,后台就会自动按照预先设定好的参数创建资源。当资源使用完毕,又可以点击另一个按钮自动删除资源。这一节我们就一起来学习如何用python来完成这一目的。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录客户端操作思路实际操作安装kubernetes库获取认证信息创建API实例导入yaml文件创建和删除检原创 2020-05-22 17:10:23 · 1103 阅读 · 0 评论 -
部署Rasa框架到Kubernetes集群并分配GPU资源
Rasa是一个对话式的AI框架,用于创建基于上下文的智能语音助手。这一节我们来看看如何将其部署到k8s集群中,并试一下其自带的模型。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Rasa常规安装命令行操作API操作部署到k8s准备自定义docker镜像DeploymentServiceAPI操作总结RasaRasa是基于python的AI框架,可以对用户提供的数据进行训练生成模型,以达到智能语音助手的目的。更多原创 2020-05-21 18:35:17 · 2124 阅读 · 4 评论 -
从零搭建可分配节点GPU资源至容器的Kubernetes集群(Nvidia版本)
最近和AI团队一起做项目,需要将机器学习的项目部署进k8s。因为要使用节点的GPU资源,普通部署的k8s集群不能用了,因为docker只能对CPU和内存而不能对GPU资源进行共享和隔离。这一节我们就一起来看看怎么部署一个能分配GPU资源的k8s集群。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境利用kubeadm安装GPU节点安装准备查看Linux的GPU信息安装nvidia-docker2GPU节点加入集原创 2020-05-20 02:26:34 · 4250 阅读 · 4 评论 -
【Kubernetes 020】Helm3安装Dashboard
之前都是在命令行查看集群的一些信息,不是特别直观。这一节使用上一节学习的Helm安装下官方的可视化Dashboard,用图形界面查看下集群状态。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录安装Dashboard登录利用Dashboard部署pod总结安装Dashboard这里使用Helm包管理工具进行安装,对Helm不是很熟悉的可以参考前一篇博客《【Kubernetes 019】包管理工具Helm安装和使用详原创 2020-05-17 21:51:52 · 1569 阅读 · 0 评论 -
【Kubernetes 019】包管理工具Helm安装和使用详解(最新Helm3版本)
为了安装应用方便,解决安装包的依赖关系,Centos里面有yum包管理工具。而为了自动安装部署,不用自己写大量的yaml文件,k8s中也出现了自己的包管理工具,就是这一节要学习的Helm。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录几个概念安装Helm实际操作使用官方Chart创建本地Chart文件结构Helm常用命令汇总总结几个概念如果是手动安装一套k8s应用出来,我们需要分别创建应用中各个组件的Deplo原创 2020-05-17 15:55:10 · 1485 阅读 · 0 评论 -
【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解
安全性是企业生产环境中的头等大事,对于访问同一集群的不同用户或者用户组来说,将权限分级是很有必要的。和很多云厂商一样,k8s也是采用按照角色和用户绑定的方式来分配权限的,这一节我们就来实际操作下,新建一个用户,并只让他在指定的namespace进行管理。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录RBACRole和ClusterRoleRoleBinding和ClusterRoleBinding用户以及认证一些证原创 2020-05-15 15:40:34 · 908 阅读 · 0 评论 -
Kubernetes集群外Windows10机器的kubectl访问集群资源图文详解
想要利用kubectl控制k8s集群,没有必要ssh到master节点,只要能访问到api server,在本地操作也一样。这一节我们就一起来看看如何在本地的Windows10机器利用kubectl控制远程的k8s集群。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境API server用户认证远程控制操作环境远程的k8s集群搭建在centos机器上,一台master,一台node。本地电脑为Window原创 2020-05-14 13:04:54 · 932 阅读 · 0 评论 -
【Kubernetes 017】pod调度之nodename和nodeselector
和前面学习的Affinity类似的,还可以直接在pod的声明中指定一个node去调度。这种方式简单粗暴,我们一起来学习看。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录实践操作单个nodenode标签选择器总结实践操作固定节点因为比较简单粗暴,所以直接上操作。分为两类,一类是指定单个node,另一类是指定node的label。以下所有yaml文件托管在我的Github仓库单个node直接在pod.spec原创 2020-05-13 18:23:56 · 900 阅读 · 0 评论 -
【Kubernetes 016】pod调度之Taint和Toleration
上一节学习的Affinity是在pod创建的时候设置的,但是随着pod的数目越来越多,更有效率的方式应该是在node端设置一些记号,pod默认就不会调度在这个node上,而只有一些经过特殊设置的pod才可以在该node调度。这就是这一节要学习的Taint和Toleration。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录TaintToleration实际操作总结TaintTaint,污点,是在node上的一个原创 2020-05-13 17:05:50 · 477 阅读 · 0 评论 -
【Kubernetes 015】pod调度之Affinity亲和性
默认情况下pod被分配到哪个node都是随机的,但是很多情况下这不太符合预期。例如有多台node,有的属于cpu密集型适合逻辑运算,有的属于gpu密集型适合机器学习。这时候就需要对pod调度的node有所规划,这一节学习第一种方式,根据亲和性进行调度。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录一些概念Affinity和Anti-affinityNodeAffinity和PodAffinity软策略和硬策略实际操原创 2020-05-13 13:09:20 · 720 阅读 · 0 评论 -
【Kubernetes 014】持久存储PersistentVolume原理以及配合StatefulSet实现有状态服务实际操作详解
上一节中我们学习了volume,但是volume还是不能解决pod被删除后内部数据的持久化问题。而这一节要学习的PerisstentVolume就是专门来解决这个问题的。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Persistent VolumePersistent Volume ClaimStatefulSetHeadless Service实际操作创建NFS创建NFS的PV创建StatefulSet验证持久原创 2020-05-13 09:59:50 · 1530 阅读 · 6 评论 -
【Kubernetes 013】Volume原理和实际操作详解
一个pod内有多个容器,我们知道这些容器是共享网络栈的,但是文件系统却似乎还不能共享?如果一个容器运行了一段时间,崩溃重启了,里面保存的内容都丢失了,这又该如何解决?带着这些疑问我们一起来学习k8s中负责数据存储的组件:volume。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Docker中的数据保存K8s中的数据保存k8s中的volume实际操作emptyDir操作hostPath操作总结Docker中的数据原创 2020-05-11 21:29:52 · 1199 阅读 · 0 评论 -
【Kubernetes 012】Secret原理和实际操作详解
上一节我们学习了ConfigMap,k8s集群的配置中心。但是因为采用明文存储,ConfigMap并不适合用来存储私密信息,例如密钥等。这一节我们来学习k8s中专门存储私密信息的组件:Secret。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Secret创建Secret文件或文件夹创建Secretyaml文件或者命令行创建Secret容器中使用secret环境变量使用secretvolume使用secret访问私原创 2020-05-10 21:38:41 · 1180 阅读 · 0 评论 -
【Kubernetes 011】ConfigMap原理和实际操作详解
相信很多朋友都听说过配置中心这种东西,应用在运行的时候会从配置中心读取不同环境的配置信息,以达到相同的应用在不同环境运行的目的。这种低耦合的应用运行方式也在k8s中得到了应用。这一节我们就来学习k8s中的配置中心:ConfigMap。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录ConfigMap生成ConfigMap根据文件或者文件夹生成ConfigMap根据yaml文件或命令行生成ConfigMap容器使用Co原创 2020-05-10 14:42:54 · 1841 阅读 · 0 评论 -
Kubernetes中配置没有问题的pod却一直出现CrashLoopBackOff的报错原因及解决办法
这里记录下一次k8s里解决CrashLoopBackOff的思路和过程。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录问题现象问题分析问题解决拓展总结问题现象在一次测试ConfigMap的过程中,我想起一个单容器的pod,简单的打印出容器内所有的环境变量,以验证ConfigMap的传递。结果pod起来以后一直出现CrashLoopBackOff的状态。这里为了抽离出问题的本质,去掉干扰项,将pod的生成yam原创 2020-05-09 19:36:56 · 6566 阅读 · 0 评论 -
【Kubernetes 010】Ingress作用及Ingress-Nginx实际操作详解
上一节中我们学习了Service以及对应的负载均衡,但是这些负载均衡都是基于IP和端口的四层负载均衡。那么如果想要实现七层负载均衡,也就是根据请求的内容来,有没有办法实现呢?这就需要用到本节即将学习的Ingress了。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录什么是IngressIngress vs NodePortIngress-Nginx安装实际操作HTTP代理HTTPS代理BasicAuthNginx重写原创 2020-05-08 22:38:17 · 7749 阅读 · 6 评论 -
【Kubernetes 009】各种Service类型以及对应操作详解(ClusterIP,NodePort,ExternalName)
前面我们学习了通过控制器去批量创建和管理pod,有了pod就可以创造一个虚拟ip配合负载均衡对外提供服务了。现在新的问题又来了,如何在多个pod副本之间形成负载均衡?坏的pod被自动替换掉却有了新的ip,又该如何将新ip加入负载均衡?如何将pod提供的服务暴露给外网客户端?这些问题都需要k8s中一个叫做Service的东西来解答,这一节我们就一起来学习下Service。我是T型人小付,一位坚持...原创 2020-05-07 11:34:56 · 1831 阅读 · 1 评论 -
【Kubernetes 008】多种类型控制器区别及实际操作详解(RS,Deployment,DaemonSet,Job,ConJob)
Pod是k8s中的基本结构,前面我们已经创建过一个。但是生产环境中往往不需要我们自己去创建pod,而是通过创建管理pod的控制器而达到自动批量管理pod的目的。这一节我们就一起来看看k8s中有哪些控制器,以及这些控制器的一些基本操作。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录控制器类型Replicat...原创 2020-05-04 16:47:11 · 3072 阅读 · 2 评论 -
【Kubernetes 007】容器生命周期之启动退出动作
通过前面两节的学习,容器生命周期就只剩下最后的一点点边角料了,这一节我们把它们都学完。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录启动和退出动作Pod的status总结启动和退出动作以下所有yaml文件都托管在Github:https://github.com/Victor2Code/centos...原创 2020-05-04 16:43:51 · 596 阅读 · 0 评论 -
【Kubernetes 006】容器生命周期之探针Probe
上一节的例子中,我们用Init容器去检测service是否能被成功解析,这似乎不是一个好主意。因为Init容器能成功检测并不代表后面的业务容器也能,所以最好的情况就是有专门的模块不停去检测,这个模块就是我们这一节要学习到的探针。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录探针探针实例操作readines...原创 2020-04-30 21:24:09 · 1075 阅读 · 0 评论 -
【Kubernetes 005】容器生命周期子Init容器
上一节我们成功创建了自己的第一个pod,但是这背后到底发生了什么,又有什么可以被我们自定义的还不知道。这一节我们一起来看看一个容器从被创建到被销毁经历的生命周期,并详细学习下其中的初始化过程:Init阶段。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录容器的生命周期Init CInit容器实际操作Init...原创 2020-04-30 21:22:49 · 508 阅读 · 0 评论 -
【Kubernetes 004】用yaml文件创建自己的第一个pod
k8s集群中的名词非常多,不过不用慌,我们会一个个依次学习到。上一节我们已经成功创建了一个集群,这一节我们先了解下k8s中对于这些名词的分类方式,并在上一节集群里面以创建一个pod为例来初窥k8s中yaml配置文件各个字段的用法。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录k8s中的资源名称空间级别集群...原创 2020-04-29 16:49:23 · 2365 阅读 · 0 评论 -
【Kubernetes 003】Centos7通过Kubeadm安装Kubernetes1.15详解(附一键安装脚本)
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,比起复杂繁琐的源码安装要方便快捷很多。这一章我们就通过kubeadm搭建起一个Kubernetes集群。为后面的学习做准备。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录一键安装脚本准备系统准备开启ipvs所需模块安...原创 2020-04-28 21:57:48 · 928 阅读 · 0 评论 -
【Kubernetes 002】Pod的概念和网络通讯方式
上一节我们了解了k8s的整体架构,这一节我们来深入了解下最基本的工作单元Pod,以及多台机器上的Pod之间的通信方式。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Pod是什么Pod的分类控制器Replication Controller/ReplicaSet/DeploymentHPA(Horizont...原创 2020-04-28 21:50:58 · 681 阅读 · 0 评论 -
【Kubernetes 001】组件说明
Kubernetes是当前企业级别容器管理中炙手可热的明星,从这一节开始我们就一起来学习下它。因为是基于容器的管理工具,所以学习K8s之前应该首先有容器相关的知识,例如docker。首先从k8s的基本介绍开始。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Kubernetes的特点Borg架构Kubern...原创 2020-04-28 21:44:48 · 449 阅读 · 0 评论