随笔分类 - Kubernetes
摘要:背景说明 我们在业务上容器的过程中遇到了如下问题: 1. 以deployment部署的应用pod,由于id经常变更,服务重启,监控变得难以维护。这里只是以监控为切入点,事实上,还有诸多应用需要与id强绑定。 2. statefulset可以解决上面的问题,但是引入一个新的问题就是statefulse
阅读全文
摘要:安装前的准备 最低系统要求 1. master最低要求 最小4 vCPU 最小16 GB RAM /var/最小40 GB硬盘空间 /usr/local/bin/最小1 GB硬盘空间 临时目录最小1 GB硬盘空间 2. node最低要求 1 vCPU 最小8 GB RAM /var/最小15 GB硬
阅读全文
摘要:[toc] 简介 DaemonSet好比Kubernetes集群Node的守护进程,可以保证在每个Node上(或者一部分Node上)都运行同一个Pod且只运行一个。适用的场景主要是一些agent,如日志收集的agent、监控的agent等。 daemonset 配置示例 daemonset的配置示例
阅读全文
摘要:[toc] 简介 cpfs的具体介绍可参考这里: https://help.aliyun.com/document_detail/111755.html?spm=a2c4g.11174283.3.1.1275c6eclqO43j 要使用cpfs存储,需要在所有的k8s节点上安装cpfs的客户端。安装
阅读全文
摘要:[toc] 简介 伴随着人工智能技术的发展,机器学习的应用场景越来越广泛 深度学习的实现,需要多种技术进行支撑,比如服务器、GPU、集群、集群管理调度软件、深度学习框架、深度学习的具体应用等 随着Kubernetes的兴起,越来越多的训练任务也都直接运行在Kubernetes之上,这些基于GPU的应
阅读全文
摘要:[toc] 简介 当前kubernetes的最新版本已经到了1.16,而kubernetes官方推出的安装工具kubeadm也已经GA。本文就基于kubeadm来安装最新的kubernetes集群。 各组件示意图如下: 环境说明 部署环境: 主机名|ip地址| 节点类型| 系统版本 | | | ma
阅读全文
摘要:[toc] Volume类型 volume是kubernetes Pod中多个容器访问的共享目录。volume被定义在pod上,被这个pod的多个容器挂载到相同或不同的路径下。volume的生命周期与pod的生命周期相同,pod内的容器停止和重启时一般不会影响volume中的数据。所以一般volum
阅读全文
摘要:[toc] 简介 在上一篇 "《独立部署GlusterFS+Heketi实现Kubernetes共享存储》" 中,我们说明了如何手动部署GlusterFS+Heketi来提供Kubernetes的共享存储。 然而,因为Heketi无法集群部署,所以这种部署方式中,Heketi是一个单点。要尽可能的消
阅读全文
摘要:概述 Kubernetes暴露服务的方式目前有三种: LoadBlancer Service NodePort Service Ingress 在《kubernetes资源之service》中我们提到,通过NodePort Service和LoadBlancer Service可以将集群内服务对外暴
阅读全文
摘要:基本概念 当应用由单体架构转向微服务架构时,应用被拆成很多小的互相协作的微服务,每个服务会以多个副本运行,副本数量会随着系统所需的处理能力进行变化,这就是微服务的伸缩性。 微服务的负载均衡器对实现伸缩性起了十分重要的作用。 Service是Kubernetes最重要的资源对象。Kubernetes中
阅读全文
摘要:简介 通过手工执行 kubectl scale 命令或者通过修改deployment的replicas数量,可以实现 Pod 扩容或缩容。但如果仅止于此,显然不符合 Google 对 Kubernetes 的定位目标 —— 自动化、智能化。在 Google 看来,分布式系统要能够根据当前负载的变化情
阅读全文
摘要:说明 我们通过一个示例来演示一下kubernetes部署应用的基本配置。 这个示例相对比较简单,就是一个tomcat应用加上一个mysql数据库 在tomcat里运行一个简单的webappp,这个app会访问Mysql获取数据。并展示在页面上。为了演示和简化的目的,只要程序正确连接到了数据库上,它就
阅读全文
摘要:[toc] 简要说明 我们知道,kubenretes的安装非常复杂,因为组件众多。为此各开源社区以及一些商业公司都发布了一些针对kubernetes集成安装组件,包括kubernetes官方的kubeadm, minikube,基于ubuntu的conjure up,以及rancher等。但是我个人
阅读全文
摘要:[toc] Helm安装 Helm client安装 helm项目地址: https://github.com/helm/helm 可以直接下载helm的二进制包,解压后,将二进制文件复制到标准命令路径即可完成安装 Helm tiller安装 Helm Tiller是Helm的server,Till
阅读全文
摘要:[toc] 什么是Helm 微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt get / yum,由Deis 公司发起,该公司已经被微软收购。Helm
阅读全文
摘要:简介 我们知道,K8S可以在应用容器启动之前先执行一些预定义的操作,比如事先生成一些数据,以便于应用容器在启动的时候使用。这种方式可以通过init container技术实现,具体可以参考《Kubernetes init container》。 那么事实上,在实际生产中,还有一种需求,就是我们需要在
阅读全文
摘要:说明 关于kubernetes的服务暴露方式以及traefik的原理篇这里不作详细说明。traefik的原理可以参考官方文档:https://docs.traefik.io/ ,而关于kubernetes的服务暴露方式以及将traefik作为kubernetes的ingress使用的基本原理也可以参
阅读全文
摘要:通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证。 在docker单机环境中,我们可以直接在宿主机上执行docker login 类似这种命令的方式来完成认证。但在通过kubernete
阅读全文
摘要:[toc] 简介 secret顾名思义,用于存储一些敏感的需要加密的数据。这些数据可能是要保存在pod的定义文件或者docker的镜像中。把这些数据通过加密的方式存放到secrets对象中,可以降低信息泄露的风险。在secret中存储的数据都需要通过base64进行转换加密后存放。 创建secret
阅读全文
摘要:认证类型 kubernetes 提供了三种级别的客户端认证方式: HTTPS证书认证,是基于CA根证书签名的双向数字证书认证方式,是最严格的认证 HTTP Token认证,通过Token识别每个合法的用户 HTTP Basic认证 HTTP Token认证和Http Basic认证是相对简单的认证方
阅读全文