自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

翻译 云原生计算基金会(CNCF)

什么是CNCF?云原生计算基金会构建可持续生态系统并促进社区支持云原生开源软件的增长和健康。CNCF作为一个厂商中立的基金会,致力于Github上的快速成长的开源技术的推广,如Kubernetes、Prometheus、Envoy等,帮助开发人员更快更好的构建出色的产品。每个CNCF项目都需要有个成熟度等级,申请成为CNCF项目的时候需要确定项目的成熟度级别。成熟度级别(Maturit...

2019-08-28 10:50:46 420

翻译 持续交付--CDF基金会

CD是一种软件工程方法,团队在短周期内生成软件,确保软件可以随时可靠地发布。微服务、云原生架构的兴起引发了持续交付实践的必然结果。这与CI/CD有关,其中包括持续集成(CI) - 将所有开发者工作副本一天多次合并到共享主线的做法。CDF(Continuous Delivery Foundation,持续交付基金会)是一个新的、中立的组织,将发展和维持一个开放的持续交付生态系统。它将提供统一的治...

2019-08-28 10:32:57 67

原创 热门软件中文在线文档

1. kubernetes中文文档1:https://kubernetes.io/zh/docs/中文文档2:https://jimmysong.io/kubernetes-handbook/https://github.com/rootsongjc/kubernetes-handbook中文文档3:https://blog.frognew.com/中文文档4:https...

2018-06-22 13:29:59 342

原创 kubernetes-国内拉取gcr.io\quay.io镜像方法

由于防火墙的问题,google的image 仓库基本不能下载,你可以在这里基本可以找到在gcr.io的同步镜像:方法1:https://hub.docker.com/r/ibmcom/例如:gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.4docker pull ibmcom/k8s-dns-sidecar:1.14.4gcr...

2018-06-13 20:19:21 5186

原创 python-使用正则函数re.findall处理不定长度但有一定格式的字符串

'''使用re.findall正则处理不定长度但有一定格式的字符串:日志格式: 书名,作者,单价book1,test1,1001, book2,test2,1002, book3,test4,1004book1,test5,1005, book6,test6,1006, book7,test7,1007, book1,test8,1008book9,test9,1009, book10,test10,10010'''import redef analyzer_line(line):.

2020-07-31 16:00:21 75

原创 python-各个主流邮件发送方式

smtplib 是一个用于python2.7和python3.x的内置包,所以有不需要安装。您可以导入它,而无需安装任何其他软件包。参考:https://docs.python.org/3/library/smtplib.html?highlight=smtplib如果你安装,会出现以下错误:$ pip3 install smtplibCollecting smtplib ERROR: Could not find a version that satisfies the requir.

2020-07-27 10:49:37 94

原创 kubernetes-Helm3的使用:

1. 增加 repo:# 阿里云helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts#google helm repo add stable https://kubernetes-charts.storage.googleapis.com/2. 查看某个资源的版本列表:helm search repo stable/kube-state-metrics -lNAME .

2020-07-23 14:18:37 75

转载 prometheus-rate、irate、increase函数使用场景

计算Counter指标增长率我们知道Counter类型的监控指标其特点是只增不减,在没有发生重置(如服务器重启,应用重启)的情况下其样本值应该是不断增大的。为了能够更直观的表示样本数据的变化剧烈情况,需要计算样本的增长速率。如下图所示,样本增长率反映出了样本变化的剧烈程度:通过增长率表示样本的变化情况increase(v range-vector)函数是PromQL中提供的众多内置函数之一。其中参数v是一个区间向量,increase函数获取区间向量中的第一个后最后一个样本并返...

2020-06-24 11:36:42 453

原创 Centos7-部署NFS共享存储

安装NFS包$ yum install nfs-utils启动nfs$ systemctl start nfs$ systemctl enable nfs准备共享目录$ mkdir /data/nfs-1把目录添加到共享中# cat /etc/exports/data/nfs-1 *(rw,sync,insecure,no_subtree_check,no_root_squash)生效配置:$ exportfs -r检查已有的共享目录:$ sho

2020-05-23 17:38:58 109

原创 prometheus-node_exporter收集主机资源信息

node_exporter通常用来收集主机的cpu、内存、带宽、磁盘等资源的使用情况。下面用裸机部署node-exporter测试:1. 在被监控的主机上部署node-exporter1.1下载,请下载最新版:https://github.com/prometheus/node_exporter/releases1.2 以systemd方式启动node-exporter:...

2019-12-12 15:11:50 1043

原创 prometheus-使用grafana(3.1.1、5.1.3)可视化监控数据

prometheus 安装,参考:https://blog.csdn.net/kozazyh/article/details/80627924环境:prometheus 2.2.1grafana: 3.1.1 (你也可以替换为:grafana:5.1.3)一、建立grafana储存1.1 创建pv$ cat grafana-pv.yaml apiVersion: v1...

2019-12-11 10:18:50 145

原创 kubernetes-证书过期,重建证书后出现的kubelet证书过期问题

由于初期,创建证书的期限只有一年,后来经过重建10年的证书期限后(参考:kubernetes-证书过期,重建证书),稳定运行一年后,再次出现证书问题:1. 故障的表现:kubectl get nodeNAME STATUS ROLES AGE VERSION10.2.2.120 ...

2019-12-06 10:37:13 2074

原创 kubernetes-证书过期,重建证书

kubernetes 版本:1.9.x,安装方式,使用二进制文件,手工安装(参考:https://github.com/opsnull/follow-me-install-kubernetes-cluster/tree/v1.6.2);由于当初安装kubernetes,制作证书的时候,设置了证书的有效期只有1年。到一年后,所有节点都变为noready状态。检查kubelet服务的日志,提示认证...

2019-12-06 09:40:09 1630

原创 kubernetes-服务端口故障排查过程

在k8s中,通常在一个服务应用出现故障的时候,我们会在集群内自我检查:检查pod的日志 首先检查这个服务的的端口是否可用 跨节点访问检查具体过程如下:1. 先查出该服务的service ,pod 信息kubectl get svc,ep,po -o wide -n grafanaNAME TYPE CLUSTER-IP EXTE...

2019-11-29 14:18:57 394

转载 Kubernetes-服务发现与负载均衡

一、需求来源为什么需要服务发现在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机器的 IP 地址。但是在 K8s 集群里面应用是通过 pod 去部署的, 而 pod 生命周期是短暂的。在 pod 的生命周期过程中,比如它创建或销毁,它的 IP 地址都会发生变化,这样就不能使用传统的部署方式,不能指定 IP 去访...

2019-11-29 11:25:37 97

原创 gitlab-升级笔记(11.10.8升级到12.4.2 )

执行升级:$ sudo apt-get upgrade gitlab-ce提示我运行的已经是最新版本,并没提示需要升级,但是我在dashboard看到提示有新版可以升级:运行 ubuntu@gitlab:~$ sudo apt-cache madison gitlab-ce"不会显示比当前安装的版本更高的任何版本。gitlab-ce | 11.10.8-ce.0 | ht...

2019-11-25 12:59:16 1273

转载 Kubernetes-NodePort vs Loadbalancer vs Ingress 在生产中如何选择?

最近,有人问我NodePort,LoadBalancers和Ingress之间有什么区别。它们都是将外部流量带入群集的不同方法,并且它们都以不同的方式进行。简单的说,生产环境建议使用 Loadbalancer 和 Ingress,四层(TCP/UDP)代理使用 Loadbalancer,七层(HTTP/HTTPS)代理使用 Ingress。让我们看一下它们各自的工作方式以及何时使用它们。C...

2019-11-25 12:55:16 94

转载 A.B.C类地址的私有地址、局域网地址、保留地址

作者:知乎用户链接:https://www.zhihu.com/question/302935308/answer/535819686来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。A、B、C3类地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位是10,C类地址的前三位总是110.①A类地址。A类地址第一字节为网络地址...

2019-11-20 15:31:16 923

原创 使用dnsmasq在本地将域名解析为CNAME别名

目前,在aws上有一个负载均衡器:some-balancer-458343333.ap-southeast-1.elb.amazonaws.com,现在我想使用自己的域名(balancer.example.com)指向负载均衡器,这样可以方便公开此网站。在dnsmasq的做法如下:1. 先安装dnsmasqyum install -y dnsmasq2. 配置dnsmasqd...

2019-11-19 09:09:55 938

转载 kubernetes-StatefulSet 基本使用

本教程介绍了如何使用StatefulSets来管理应用。演示了如何创建、删除、扩容/缩容和更新 StatefulSets 的 Pods。教程目标 准备开始 创建 StatefulSet StatefulSet 中的 Pod 扩容/缩容 StatefulSet 更新 StatefulSet 删除 StatefulSet Pod 管理策略 清理现场教程目标Stateful...

2019-11-07 08:58:30 489

转载 kubernetes-K8S调度之Taints and Tolerations

Taints和Tolerations(污点和容忍)在《K8S之节点亲和性》中,我们说到的的NodeAffinity节点亲和性,是在pod上定义的一种属性,使得Pod能够被调度到某些node上运行。Taint刚好相反,它让Node拒绝Pod的运行。Taint需要与Toleration配合使用,让pod避开那些不合适的node。在node上设置一个或多个Taint后,除非pod明确声明能够容忍这...

2019-11-06 13:01:12 406

原创 kubernetes-在SchedulingDisabled的节点上禁止调度DaemonSet的pod

我们已经把master 节点设置了:SchedulingDisabled :$ kubectl get nodeNAME STATUS ROLES AGE VERSION10.2.2.120 Ready,SchedulingDisabled master ...

2019-11-06 12:58:52 4495

原创 loki-promtail 指抓取所选pod的日志

版本:grafana/promtail:v0.4.0Promtail 默认安装,会抓取所有pod的日志,如果我不想从群集中的所有Pod抓取日志,而仅抓取所选应用程序的Pod日志,需要自己修改的配置。例如:我们想跟prometheus一样,增加 annotations:prometheus.io/scrape: "true" 来选定抓取的pod:$ cat nginx-deploym...

2019-11-03 12:47:55 2830

原创 ps 查找进程,排除自己

通常我们在终端查找进程:~> ps ax |grep kex 69 ?? Ss 0:29.10 /usr/libexec/kextd13394 s013 S+ 0:00.00 grep --color=auto kex会显示自己:grep --color=auto kex如果需要排除grep本身的进程,可以利用-v 参数:~> ps...

2019-10-30 10:10:01 726

转载 Kubernetes-蔚来汽车的Kubernetes实践

【编者的话】Kubernetes已经成为当下最火热的一门技术,未来一定也会有更好的发展,围绕着云原生的周边产物也越来越多,使得上云更加便利更加有意义,本文主要讲解一些蔚来汽车从传统应用落地到Kubernetes集群的一些实践经验,提供给大家在落地之前的一些思考和注意点,并且让大家在实施的时候能够有一些借鉴,提供一些使用过程中的注意事项。项目背景Docker诞生于2013年初,随着时间的推移...

2019-10-12 13:28:50 160

转载 linux free 命令

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。如果加上 -h 选项,输出的结果会友好很多:有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:$ free -h -s 3上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。(Ubuntu 16.04 中默认的 free 版本有...

2019-10-12 10:13:59 26

原创 kafka-集群安装

版本:centos 7 jdk8 zookeeper-3.4.10 kafka 1.0.0zookeeper-01.localdns 192.168.5.101 zookeeper-02.localdns 192.168.5.102 zookeeper-03.localdns 192.168.5.103 kafka-01.localdns 192.1...

2019-10-10 20:21:53 87

翻译 druid.io-架构设计介绍

架构设计Druid具有多进程,分布式架构,旨在实现云友好且易于操作。每种Druid进程类型都可以独立配置和扩展,从而为您的集群提供最大的灵活性。这种设计还提供了增强的容错能力:一个组件的故障不会立即影响其他组件。进程和服务器Druid有几种过程类型,下面简要描述:Coordinator进程管理群集上的数据可用性。 Overlord进程控制数据提取工作负载的分配。 broker程...

2019-10-10 20:06:23 105

转载 kubernetes-pod容器内获取客户端真实IP

使用externalTrafficPolicy: Local保留报文的源地址:1.1 nodePort类型kubernetes将在Pod所在Node上针对nodePort下发DNAT规则,而在其他节点上针对nodePort下发DROP规则。 client ^ / \ / / \ / v X node...

2019-10-10 20:01:14 823 2

原创 prometheus-服务发现

为了能够动态服务发现,并自动加入prometheus的监控中,一般的方法有:使用consul + consul-template 中service 或 kv confd + etcd ,由于k8s已经有etcd,使用confd读取etcd中你想要的服务; 自动读取k8s中的service, pod,container,node下面以kubernetes为例子:假设kuberne...

2019-10-10 19:46:40 340

原创 kubernetes-使用集群外部服务的方法

有时候,部分服务没有迁移到集群中,下面方法可以定义集群访问外部服务:方法1.定义外部服务地址:$ cat ext-svc.yamlapiVersion: v1kind: Servicemetadata: name: ext-svc namespace: defaultspec: externalName: 192.168.5.86 #(也可以使用域名的方式xxx....

2019-10-10 19:45:16 47

原创 kubernetes-记录一次使用kubectl logs 查询pod日志提示格式错误

今天想查询某个pod的日志,突然发现$ kubectl logs pod p-xxxxxxxxxxfailed to get parse function: unsupported log format: "\n"原因:由于之前发现容器的日志过大,如果在dockerd配置日志的大小,需要重启dockerd服务;之后为了不重启docker服务,采用了折中的方法,写了一个脚本,定时...

2019-10-10 19:44:19 2248

原创 kubernetes-给节点打标签

标签是附加到对象的键/值对。标签旨在用于指定对用户有意义且相关的对象的标识属性,但不直接暗示核心系统的语义。标签可用于组织和选择对象的子集。标签可以在创建时附加到对象,随后可以随时添加和修改。每个对象都可以定义一组键/值标签。每个Key对于给定对象必须是唯一的。给节点打上标签:# kubectl label nodes <node_name> key1=val1 key2=v...

2019-10-10 19:42:50 2238

原创 kubernetes-sidecar方式日志收集(filebeat->kafka)

version: filebeat:6.2.4容器日志的默认存储方式是:json-file1. docker 所有日志实际存放路径为:/var/lib/docker/containers/ ,日志文件的名称跟k8s的命名方式并没有关联;2. 为了方便管理(使用deployment,container的名称来命名日志),会创建一些links,指向日志实际存储路径 /var/lib/docke...

2019-10-10 19:41:32 895

原创 kubernetes-node方式日志收集(filebeat->kafka)

version: filebeat:6.2.41. 准备filebeat 配置文件:$ cat filebeat.yml filebeat.registry_file: /var/log/containers/filebeat_registryfilebeat.prospectors:- paths: - "/var/log/containers/*.log" ...

2019-10-10 19:41:14 135

翻译 kubernetes-filebeat自动发现容器日志

version: filebeat 7.0.0自动发现在容器上运行应用程序时,它们会成为监视系统的移动目标。自动发现允许您跟踪它们并在发生变化时调整设置。通过定义配置模板,自动发现子系统可以在服务开始运行时对其进行监控。您可以filebeat.autodiscover在filebeat.yml 配置文件的部分中定义自动发现设置 。要启用自动发现,请指定提供程序列表。提供商自动发现提...

2019-10-10 19:37:58 942

原创 kubernetes-解决prometheus从错误的端口获取指标

版本:prometheus 2.2.11. 增加kubernetes pod 自动发现配置: - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernete...

2019-10-10 19:37:15 465

原创 prometheus-常用的监控告警规则

常用的监控告警规则:1. 内存告警,当容器占用的内存大于节点内存的85% - alert: ContainerMemoryUsage expr: sum by(kubernetes_io_hostname) (container_memory_working_set_bytes{id="/"}) / sum by(kubernetes_io_hostname) (ma...

2019-10-10 19:36:13 504

原创 prometheus-rules规则迁移(1.x->2.x)

prometheus 告警规则编写在1.x和2.x是不兼容的,如果把prometheus1.x升级到2.x 需要把告警规则使用新的格式重新编写一次。prometheus 2.x的alters rule使用yml格式,也提供了一个工具(promtool)来把1.x alter规则转换为2.x格式。1. 下载prometool工具该工具在prometheus2.x的release中可以找到...

2019-10-10 19:35:48 121

翻译 kubernetes-日志收集的几种架构

一、记录节点级别:一切集装箱应用程序写入stdout,并stderr进行处理,并通过集装箱引擎某处重定向。例如,Docker容器引擎将这两个流重定向到日志驱动程序,该日志驱动程序在Kubernetes中配置为以json格式写入文件。节点级日志记录中的一个重要考虑因素是实现日志轮转,以便日志不会消耗节点上的所有可用存储。Kubernetes目前不负责旋转日志,但部署工具应该设置解...

2019-10-10 19:35:23 33

提示
确定要删除当前文章?
取消 删除