企业实战kubernetes
chihtung_hsu
这个作者很懒,什么都没留下…
展开
-
企业实战--kubernetes(二十二)---Helm(本地helm仓库搭建,构建自己Helm Chart,本地仓库中应用部署))
一、创建helm chart可以使用以下命令来创建一个名为mychart 的 helm chart:[root@server1 helm]# helm create mychartCreating mychart创建后会在目录创建一个mychart目录:[root@server1 helm]# lsmychart redis-ha[root@server1 helm]# tree mychart/ #查看结构mychart/├── charts├── Chart.yaml├──原创 2020-07-09 15:25:03 · 2070 阅读 · 0 评论 -
企业实战--kubernetes(二十一)---Helm(详解及使用,实战部署redis-ha高可用集群)
一、HelmHelm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes原创 2020-07-09 15:14:08 · 747 阅读 · 1 评论 -
企业实战--kubernetes(二十)---HPA部署(基于Metrics-Server监控CPU利用率的实现pod自动伸缩)
一、HPA简介Horizontal Pod Autoscaler 可以根据CPU利用率自动伸缩 replication controller、deployment 或者 replica set 中的Pod数量 (也可以基于其他应用程序提供的度量指标,目前这一功能处于 beta 版本)。metrics-server 也需要部署到集群中, 它可以通过 resource metrics API 对外提供度量数据,Horizontal Pod Autoscaler 正是根据此 API 来获取度量数据二、HPA原创 2020-07-09 14:58:04 · 820 阅读 · 0 评论 -
企业实战--kubernetes(十九)---资源监控 Dashboard v2.0.0 部署与使用
一、Dashboard的介绍与部署Dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。下载部署文件:[root@server1 limit]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.ya原创 2020-07-06 14:45:25 · 266 阅读 · 0 评论 -
企业实战--kubernetes(十八)---资源监控 Metrics-Server V0.3.6 部署与应用
一、Metrics-Server的部署Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据。Metrics Server原创 2020-07-06 14:44:44 · 444 阅读 · 0 评论 -
企业实战--kubernetes(十七)---pod资源限制 namespace资源限制
一、容器资源限制Kubernetes采用request和limit两种限制类型来对资源进行分配。request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。limit(资源限额):即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。资源类型:CPU 的单位是核心数,内存的单位是字节。一个容器申请0.5个CPU,就相当于申请1个CPU的一半,你也可以加个后缀m表示千分之一的概念。比如说100m的CPU,100豪的CPU和0.1个CPU都是原创 2020-07-06 14:43:36 · 581 阅读 · 0 评论 -
企业实战--kubernetes(十六)---k8s访问控制(认证,授权)
一、kubernetes访问控制原理Authentication(认证)认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。通常启用X509 Client Certs和Service Accout Tokens两种认证方式。Kubernetes集群有两类用户:由Kubernetes管理的Service Accounts (服务账户)和(Users Accounts) 普通账户。k8s中账号的概念不是我们理解的账号,它并不真的存在,它只是形式上存在。Au原创 2020-07-06 10:09:38 · 290 阅读 · 0 评论 -
企业实战--kubernetes(十五)---k8s调度
一、kubernetes调度调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。**kube-scheduler 是 Kubernetes 集群的默认调度器,**并且是集群控制面的一部分。如果你真的希望或者有这方面的需求,kube-scheduler 在设计上是允许你自己写一个调度组件并替换原有的 kube-scheduler。在做调度决定时需要考虑的因素包括:单独原创 2020-07-06 09:49:06 · 556 阅读 · 0 评论 -
企业实战--kubernetes(十四)---存储(StatefulSet 控制器实现mysql主从集群的部署)
一、部署原理使用 statefulset控制器部署mysql主从集群的原理如下图所示:二、使用 statefulset控制器部署mysql主从集群部署 MySQL 示例,包含一个 ConfigMap,(用于拷贝mysql配置文件)两个 Services,(一个是无头服务,用于名称访问MySQL,一个是clustip,用于客户端通过ip访问)一个 StatefulSet(部署MySQL主从集群的)。创建ConfigMap从以下的 YAML 配置文件创建 ConfigMap :[root@se原创 2020-07-03 14:28:08 · 351 阅读 · 0 评论 -
企业实战--kubernetes(十三)---存储(StatefulSet 控制器)
一、StatefulSets简介StatefulSet 是用来管理有状态应用的工作负载 API 对象(比如mysql集群的主从就是状态,每一个服务器都有自己的配置,角色不能因为重启发生改变,就要用statefulset来维持)。StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供序号和唯一性保证。和 Deployment 相同的是,StatefulSet 管理了基于相同容器定义的一组 Pod。但和 Deployment 不同的是,StatefulSet原创 2020-07-02 15:30:02 · 532 阅读 · 0 评论 -
企业实战--kubernetes(十二)---存储(Volume之动态pv)
一、StorageClass简介及属性StorageClass提供了一种描述存储类(class)的方法,不同的class可能会映射到不同的服务质量等级和备份策略或其他策略等。每个 StorageClass 都包含 provisioner、parameters 和 reclaimPolicy 字段, 这些字段会在StorageClass需要动态分配 PersistentVolume 时会使用到。StorageClass的属性Provisioner(存储分配器):用来决定使用哪个卷插件分配PV,该字段原创 2020-07-02 15:10:09 · 818 阅读 · 0 评论 -
企业实战--kubernetes(十一)---存储(Volume之pv)
一、persistent volumes简介简介管理存储和管理计算有着明显的不同。PersistentVolume给用户和管理员提供了一套API,抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和PersistentVolumeClaim(简称PVC)。PersistentVolume(持久卷,简称PV) 是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume原创 2020-07-02 14:56:22 · 804 阅读 · 0 评论 -
企业实战--kubernetes(十)---存储(Volume之emptydir,hostpath,nfs三种类型)
一、Volumes介绍容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。 首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失——因为容器会以干净的状态重建。 其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。Kubernetes 卷具有明确的生命周期——与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保原创 2020-07-02 09:18:26 · 669 阅读 · 0 评论 -
企业实战--kubernetes(九)---存储(Secret)
一、Secret简介Secret对象类型用来保存敏感信息,例如密码、OAuth令牌和ssh key。敏感信息放在Secret中比放在Pod的定义或者容器镜像中来说更加安全和灵活。Pod可以用两种方式来使用Secret:作为volume中的文件被挂载到pod中的一个或多个容器中。当kubelet为pod拉取镜像时使用。Secret的类型:Service Account:Kubernetes自动创建包含访问API凭据的secret,并自动修改pod以使用此类型的secret。Opaque:使用原创 2020-07-02 09:04:44 · 315 阅读 · 0 评论 -
企业实战--kubernetes(八)---存储(ConfigMap)
一、Configmap简介Configmap用于保存配置数据,以键值对的形式存储Configmap资源提供了向Pod诸如配置数据的方法旨在让镜像和配置文件解偶,以便实现镜像的可移植性和可复用性典型的使用场景:填充环境变量的值设置容器内的命令行参数填充卷的配置文件创建Configmap的方式:使用字面值创建使用文件创建使用目录创建编写Configmap的yaml文件创建如何使用Configmap:通过环境变量的方式直接传递给pod通过在pod的命令行下运行的方式作为volu原创 2020-07-02 09:04:31 · 186 阅读 · 0 评论 -
企业实战--kubernetes(七)---ingress service(部署,访问,tls加密,认证,URL重定向)
一、Ingress介绍一种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。Ingress由两部分组成:Ingress controller和Ingress服务。Ingress Controller 会根据你定义的 Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的 Ingress Controller。原创 2020-06-30 13:09:29 · 787 阅读 · 0 评论 -
企业实战--kubernetes(六)---Service
一、Kubernetes ServiceService的介绍Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。service默认只支持4层负载均衡能力,没有7层功能。(可以通过Ingress实现)ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个NodeIP:nodePort都将路由到ClusterI原创 2020-06-24 13:37:49 · 233 阅读 · 0 评论 -
企业实战--kubernetes(五)---pod控制器
一、Pod控制器Pod 的分类自主式 Pod:Pod 退出后不会被创建控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目控制器类型Replication Controller和ReplicaSetDeploymentDaemonSetStatefulSetJobCronJobHPA全称Horizontal Pod AutoscalerReplication Controller和ReplicaSetReplicaSet (RS)是下一代的 Replicat原创 2020-06-23 09:22:01 · 196 阅读 · 0 评论 -
企业实战--kubernetes(四)---pod的生命周期&init容器&探针
一、pod的生命周期Pod 是 kubernetes 系统的基础单元,是由用户创建或部署的最小组件,也是 kubernetes 系统上运行容器化应用的资源对象pod可以包含多个容器,应用运行在这些容器里面,同时pod也可以有一个或多个先于应用容器启动的init容器。、二、init容器介绍Pod 可以包含多个容器,应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器。Init 容器与普通的容器非常像,除了如下三点:它们总是运行到完成。Init 容器不支持 R原创 2020-06-22 14:59:50 · 364 阅读 · 0 评论 -
企业实战--kubernetes(三)---资源清单方式创建pod
一、认识资源清单1.什么是资源清单在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单2.资源清单的格式apiVersion: group/apiversion: 如果没有给定group名称,那么默认为croe,可以使用kubectl api-versions 获取当前k8s版本上所有的apiVersion版本信息(每个版本可能不同)kind: 资源类别metadata: 资源元数据 name namespace #k8s自原创 2020-06-22 14:18:33 · 237 阅读 · 0 评论 -
企业实战--kubernetes(二)---pod命令行方式管理
一、Pod是什么Pod是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,总是部署在同一个节点Node上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。Pod支持多种容器环境,Docker则是最流行的容器环境。单容器Pod,最常见的应用方式。多容器Pod,对于多容器Pod,Kubernetes会保证所有的容器都在同一台物理主机或虚拟主机中运行。多容器Pod是相对高阶的使用方式,除非应用耦合特别严重,一般不推荐使用这种方式。一个Pod内的原创 2020-06-22 13:41:54 · 310 阅读 · 0 评论 -
企业实战--kubernetes(一)--kubeadm方式部署集群
一、Kubernetes 简介1.什么是kubernetes官方中文文档:https://www.kubernetes.org.cn/docs它是一个全新的容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernet原创 2020-06-22 13:27:22 · 363 阅读 · 0 评论