Helm

prometheus-operator监控Kubernetes

北战南征 提交于 2020-10-29 06:01:03
Operator Operator 是由 CoreOS 公司开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。 Operator 基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的一些专业知识,比如创建一个数据库的 Operator ,则必须对创建的数据库的各种运维方式非常了解,创建 Operator 的关键是 CRD (自定义资源)的设计。 CRD 是对 Kubernetes API 的扩展,Kubernetes 中的每个资源都是一个 API 对象的集合,例如我们在YAML文件里定义的那些 spec 都是对 Kubernetes 中的资源对象的定义,所有的自定义资源可以跟 Kubernetes 中内建的资源一样使用 kubectl 操作。 Operator 是将运维人员对软件操作的知识给代码化,同时利用 Kubernetes 强大的抽象来管理大规模的软件应用。目前 CoreOS 官方提供了几种 Operator 的实现,其中就包括我们今天的主角: Prometheus Operator , Operator 的核心实现就是基于 Kubernetes 的以下两个概念: 资源:对象的状态定义 控制器:观测、分析和行动,以调节资源的分布

听说,你的Loki还是单体?(下篇)

自作多情 提交于 2020-10-28 08:18:28
正文共729字 预计阅读时间:2分钟😂 相信大家看过 《听说,你的Loki还是单体?(上篇)》 之后对Loki的分布式架构有了一定的认识 ,那么本篇主要就是对上篇内容的实践。小白主要提供 docker-compose 和 helm 两种方式将部署Loki集群的Demo版本。 在正式部署之前,我们还是先来看下Loki整体架构如下图: 我们本次部署清单里面主要涉及到的组件如下: 组件 副本数 说明 Cassandra 1 Loki Index存储 Minio 1 Loki S3存储 Consul 1 Loki 组件状态和哈希环存储 Redis 1 Loki 缓存 Gateway 2 Loki 网关 Distributor 3 Loki 组件 Ingester 3 Loki 组件 Querier 3 Loki 组件 Query-Frontend 2 Loki 组件 Table-Manager 1 Loki 组件 下载部署代码 $ git clone https://github.com/CloudXiaobai/loki-cluster-deploy.git 声明:以下部署均适用于demo环境,大家切勿直接用于生产环境 对于生产环境,请务必先解决Cassandra和Consul服务的高可用 通过docker-compose部署 启动服务 $ cd loki-cluster-deploy

k8s 实验 helm jenkins deployment 部署

亡梦爱人 提交于 2020-10-24 08:51:18
# install jenkins ``` kubectl create -f serviceaccount.yaml helm install --name jenkins --set rbac.create=true,master.runAsUser=1000,master.fsGroup=1000 stable/jenkins ``` [root@k7smaster jenkins]# cat Jenkinsfile.build pipeline { agent { kubernetes { label 'helm-pod' containerTemplate { name 'helm' image 'wardviaene/helm-s3' ttyEnabled true command 'cat' } } } stages { stage('Run helm') { steps { container('helm') { git url: 'git://github.com/wardviaene/kubernetes-course.git', branch: 'master' sh ''' HELM_BUCKET=helm-rytcufor PACKAGE=demo-chart export AWS_REGION=eu-west-1 cp -r /home/helm/

helm——部署私有库

一个人想着一个人 提交于 2020-10-24 08:40:04
1、运行web容器作为私有仓库(我在node01上运行这个容器) #运行web容器 [root@docker-k8s02 ~]# docker run -d -p 81:80 -v /var/www:/usr/local/apache2/htdocs httpd #创建目录,用于存放charts包 [root@docker-k8s02 ~]# mkdir -p /var/www/charts 2、通过helm package将tesetchart打包 [root@docker-k8s01 ~]# helm create testchart #创建testechart [root@docker-k8s01 ~]# helm package testchart #进行打包 #执行打包操作后,会在当前目录下生成一个名为testchart-0.1.0.tgz的包 3、执行helm repo index生成库的index文件 [root@docker-k8s01 ~]# mkdir myrepo [root@docker-k8s01 ~]# mv testchart-0.1.0.tgz myrepo/ [root@docker-k8s01 ~]# helm repo index myrepo/ --url http://192.168.20.3:81/charts

使用loki+promtail实现云原生日志分析

喜夏-厌秋 提交于 2020-10-22 12:21:55
** loki配置使用** 1 1. Loki 是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流配置一组标签。项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs,类似于 Prometheus 的日志系统。 2. 和其他日志系统不同的是,Loki 只会对你的日志元数据标签(就像 Prometheus 的标签一样)进行索引,而不会对原始的日志数据进行全文索引。然后日志数据本身会被压缩,并以 chunks(块)的形式存储在对象存储(比如 S3 或者 GCS)甚至本地文件系统。一个小的索引和高度压缩的 chunks 可以大大简化操作和降低 Loki 的使用成本。 对比其他日志系统 EFK(Elasticsearch、Fluentd、Kibana)用于从各种来源获取、可视化和查询日志。 Elasticsearch 中的数据以非结构化 JSON 对象的形式存储在磁盘上。每个对象的键和每个键的内容都有索引。然后可以使用 JSON 对象来定义查询(称为 Query DSL)或通过 Lucene 查询语言来查询数据。 相比之下,单二进制模式下的 Loki 可以将数据存储在磁盘上,但在水平可扩展模式下

kubectl源码分析之replace

☆樱花仙子☆ 提交于 2020-10-14 16:49:54
发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967 课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。 腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518 第二个视频发布 https://edu.csdn.net/course/detail/27109 腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518 介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange

部署Chart应用并使用.net core读取Kubernetes中的configMap

给你一囗甜甜゛ 提交于 2020-10-10 23:58:02
上一篇文章讲了 k8s使用helm打包chart并上传到腾讯云TencentHub ,今天就讲一下使用Helm部署应用并使用configMap代替asp.net core 中的appsettings.json文件。 把Chart上传到TencentHub之后,我们就可以通过腾讯云的容器服务,直接部署Helm应用了。 部署Helm应用 点击新建然后选择TencentHub,私有仓库,就可以看到自己上传的Chart了。填写一下应用名称,拉到最下方点击完成即可创建应用。 注意: 如果你的yaml文件写的不对,如少个空格,变量参数名称写错或者不存在,都无法创建成功。 可以点击新建下方那个查看详情,可以看到Helm应用安装日志,安装失败会提示错误信息,自己跟据错误提示修复自己的错误。 成功安装后点击应用可以查看资源信息和状态 注意: Chart部署成功不代表你的服务已经成功启动了,如果你的服务本身是有问题起不来的话,这里不会有提示,需要自己去查看Pod是否已经正常启动成功。 好了,应用部署完成后,我们来试试如何读取configMap。 读取configMap 上篇文章没有把config.yaml文件的内容放出来,里面内容如下 其中metadata中的name是必选项,namespace不写的话默认是default,labels用于条件过滤筛选。 data就是我们的配置内容,key

进击的 Kubernetes 调度系统(二):支持批任务的 Coscheduling/Gang scheduling

ⅰ亾dé卋堺 提交于 2020-10-07 03:25:14
作者 | 王庆璨(阿里云技术专家)、张凯(阿里云高级技术专家) **导读:**阿里云容器服务团队结合多年 Kubernetes 产品与客户支持经验,对 Kube-scheduler 进行了大量优化和扩展,逐步使其在不同场景下依然能稳定、高效地调度各种类型的复杂工作负载。《进击的 Kubernetes 调度系统》系列文章将把我们的经验、技术思考和实现细节全面地展现给 Kubernetes 用户和开发者,期望帮助大家更好地了解 Kubernetes 调度系统的强大能力和未来发展方向。本文为该系列文章的第二篇。 前言 什么是 Coscheduling 和 Gang scheduling。Wikipedia 对 Coscheduling 的定义是“在并发系统中将多个相关联的进程调度到不同处理器上同时运行的策略”。在 Coscheduling 的场景中,最主要的原则是保证所有相关联的进程能够同时启动。防止部分进程的异常,导致整个关联进程组的阻塞。这种导致阻塞的部分异常进程,称之为“碎片(fragement)”。 在 Coscheduling 的具体实现过程中,根据是否允许“碎片”存在,可以细分为 Explicit Coscheduling,Local Coscheduling 和 Implicit Coscheduling。 其中 Explicit Coscheduling 就是大家常听到的

Kubernetes-基于helm安装部署高可用的Redis及其形态探索

北慕城南 提交于 2020-10-02 12:50:11
首先是一些关于redis的介绍和其在K8S上的安装过程:https://www.kubernetes.org.cn/3974.html 1.1部署形态 通过上述地址的教程,可以完成redis 的安装和使用。本文主要是要阐述一些社区版的redis-ha的形态探索。 这是我按照上述教程安装的例子,可以看到,默认是安装1主+2从,这是3节点的配置。同时,每个redis-server和一个redis-sentinel安装在一个节点,也就有了三个redis-sentinel。 1.2主从切换 首先,我们通过kubectl get svc -n default的方式来获取redis的网络情况。(n为namespace,请根据自己情况进行更改) 然后,我们通过redis-cli的方式来访问redis的master实例,并获取Replication的状态。 从上图中,我们可以看出,redis master有两个slave,同时,可以看到他们的ip和pod ip是对应的。(注意,这里我们是在宿主机上,通过master的clusterIP访问的,而非redis pod的) 我们进入到redis的master server的pod中,kill掉redis server进程,因为pod存活条件应该是以redis来判断的(有的是ping 6379这个端口,这里暂时还不知道是怎么判断的。)

ChartCenter ——为您的K8s之旅保驾护航

你说的曾经没有我的故事 提交于 2020-09-29 11:49:37
一、背景 Kubernetes(k8s) 是一个基于容器技术的分布式架构领先方案,为容器化应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。近些年来,Kubernetes迅速成为了容器编排的事实上的开源标准,能够实现应用程序部署流程的标准化和重用,提高了开发人员的生产力,并加快了云原生应用程序的采用。 当然,随着Kubernetes应用的复杂度越来越高,大家也需要新的工具来支持快速可靠的容器应用集群的配置、部署与管理工作。Helm就是这样的工具,也是CNCF官方推荐的项目,它为开发人员提供了将应用程序打包为Helm Chart的能力。通过一个命令或单击几下鼠标,用户就可以基于Helm Chart为开发测试或生产环境安装Kubernetes应用程序。大多数流行的CI/CD工具集都可以通过Helm Chart获得。 在我们之前的文章《重大福利,JFrog发布面向社区的免费安全的HelmChart中央存储库ChartCenter》中,我们介绍了JFrog发布的ChartCenter(https://chartcenter.io/),这是一个面向社区以及开发人员的免费的公共 Helm Charts中央存储库。 除了提供Helm Charts的公共服务之外,ChartCenter还能够向使用者展示每个Helm