自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

运维相关技术闲聊,专业背锅内容媒体

linux~cloudnative~kubernetes~docker~devops~gitops

  • 博客(37)
  • 收藏
  • 关注

原创 VMware Tanzu社区版初体验

VMware Tanzu社区版VMware Tanzu Community Edition 是一个功能齐全、易于管理的 Kubernetes 平台,供学习者和用户使用。 它是一个免费的、社区支持的、开源的 VMware Tanzu 发行版,可以在几分钟内在您的本地工作站或您喜欢的云上安装和配置。Linux Local Bootstrap Machine Prerequisites1、检查cgrouplinux-mint-002@linux-mint-002:~/tanzu$ sudo docker

2021-10-21 10:51:59 661

原创 kubernetes生产实践之mongodb

简介先看下生命周期图kubedb支持的mongodb版本[root@qd01-stop-k8s-master001 mysql]# kubectl get mongodbversionsNAME VERSION DB_IMAGE DEPRECATED AGE3.4.17-v1 3.4.17 kubedb/mongo:3.4.17-v1

2021-03-12 17:06:32 292

原创 kubernetes生产实践之mysql

简介kubedb mysql 生命周期及特性Supported MySQL FeaturesFeatures AvailabilityClustering ✓Persistent Volume ✓Instant Backup ✓Scheduled Backup ✓Initialize using Snapshot ✓Initialize using Script (*.sql, *sql.gz and/or *.sh) ✓Custom Configuration ✓Using Cus

2021-03-11 11:37:57 190

原创 kubernetes生产实践之redis-cluster

##方案一 自定义yaml文件安装redis cluster背景在Kubernetes中部署Redis集群面临挑战,因为每个Redis实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色。为此,需要结合使用Kubernetes StatefulSets和PersistentVolumes实现。redis cluster架构示意图:创建StatefulSet yaml文件---apiVersion: v1kind: ConfigMapmetadata: name: redis-c

2021-03-10 17:18:24 274

原创 Percona XtraDB Cluster之流量控制

什么是流量控制?Percona XtraDB Cluster具有一种称为流控制的自调节机制。该机制有助于避免集群中最弱/最慢的成员明显落后于集群中其他成员的情况。当集群成员在写数据很慢(同时又继续从群集组通道接收写集)时,传入/接收队列的大小会增加。如果此队列超过设置的阈值(gcs.fc_limit),则该节点将发出FLOW_CONTROL消息,要求其他成员放慢或暂停处理。gcs.fc_limit此设置控制何时启用流量控制。 简而言之,如果wsrep_local_recv_queue在给定节点上超过

2021-03-08 17:33:05 130

原创 记一次Linux内核崩溃:kdump,crash,vmcore

原理Linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore。 可以通过分析vmcore分析出内核崩溃的原因。crash是一个被广泛应用的内核奔溃转储文件分析工具。使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo。安装需要的软件1、查看系统内核[root@qd01-stop-free015 ~]# uname -r3.10.0-1160.15.2.el7.x86_642、安装kdump,crashyum install

2021-03-04 14:15:49 925 1

原创 使用kubekey安装kubesphere

下载 KubeKeyKubeKey 是新一代 Kubernetes 和 KubeSphere 安装器,可帮助您以简单、快速、灵活的方式安装 Kubernetes 和 KubeSphere。export KKZONE=cncurl -sfL https://get-kk.kubesphere.io | VERSION=v1.0.1 sh -准备镜像如果您想让安装加快或者您的机房没有外网,可以使用公司内部的私有仓库,预先把镜像推送到私有仓库中,我这里的仓库使用harbor下载离线安装工具,我这里只

2021-02-05 18:10:48 522

原创 kubernetes用户权限管理工具permission-manager

Permission ManagerPermission Manager是一个为Kubernetes RBAC和用户管理提供Web UI的项目,为Kubernetes权限管理提供友好的可视化界面。1、安装从 https://github.com/sighupio/permission-manager/tree/master/deployments/kubernetes 把yaml文件下载下来,如下[root@qd01-stop-k8s-master001 kubernetes]# lltotal

2021-01-28 14:00:27 334 1

原创 记一次ceph pg unfound处理过程

今天检查ceph集群,发现有pg丢失,于是就有了本文~~~1.查看集群状态[root@k8snode001 ~]# ceph health detailHEALTH_ERR 1/973013 objects unfound (0.000%); 17 scrub errors; Possible data damage: 1 pg recovery_unfound, 8 pgs inconsistent, 1 pg repair; Degraded data redundancy: 1/2919039

2021-01-26 14:30:10 799

原创 SaltStack api使用

SaltStack官方提供有REST API格式的api项目,使得salt与第三方系统集成变得更加简单。以下操作前提是您已经安装好salt-master和salt-api服务1、配置salt-master,开启rest_cherrypy服务这里偷懒,没有使用ssl,所以直接禁用ssl了,线上环境建议使用sslrest_cherrypy: port: 8181 host: 0.0.0.0 disable_ssl: True2、配置pam验证,external_auth: pam:

2021-01-12 16:48:47 134

原创 saltstack批量管理文件和计划任务

简介saltstack是由thomas Hatch于创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。用来管理你的基础架构,可轻松管理成千上万台服务器。关于saltstack更多功能本文不多介绍了,本文主要演示使用saltstack来管理服务器的文件(例如/etc/hosts,/etc/resolv.conf)和计划任务。使用前情在维护大量服务器的时候,系统一般初始化并上线以后,我们希望所有的服务器系统的某些配置文件一样,这时候我们需要一种工具来批量管理这些文件,保证配置文件的一致性,比

2021-01-06 16:32:58 115

原创 Kubernetes应用管理器OpenKruise之CloneSet

OpenKruiseOpenKruise 是 Kubernetes 的一个标准扩展,它可以配合原生 Kubernetes 使用,并为管理应用容器、sidecar、镜像分发等方面提供更加强大和高效的能力。核心功能原地升级原地升级是一种可以避免删除、新建 Pod 的升级镜像能力。它比原生 Deployment/StatefulSet 的重建 Pod 升级更快、更高效,并且避免对 Pod 中其他不需要更新的容器造成干扰。Sidecar 管理支持在一个单独的 CR 中定义 sidecar 容器,

2020-12-23 17:01:51 1195

原创 GitOps之Argo CD实践

简介Argo CD是用于Kubernetes的声明性GitOps连续交付工具。关于 GitOps 相关的概念这里不做更多介绍,本文主要以实战为主,通过一个完整的使用示例,希望对大家实践 GitOps 有所帮助。接来下就开干…安装Argo CD1、根据官网文档,其实安装很简单,两条命令搞定kubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo

2020-12-14 14:46:48 616

原创 Kubernetes日志系统新贵Loki-Stack

Loki简介Grafana Loki是可以组成功能齐全的日志记录堆栈的一组组件。与其他日志记录系统不同,Loki是基于仅索引有关日志的元数据的想法而构建的:标签(就像Prometheus标签一样)。 然后,日志数据本身被压缩并存储在对象存储(例如S3或GCS)中的块中,甚至存储在文件系统本地。 小索引和高度压缩的块简化了操作,并大大降低了Loki的成本。相较于EKL,Loki就显得很轻量级了;用了Loki以后,ELK突然不香了!哈哈~~~Loki-stack组件先放两张图Promtail

2020-12-01 11:07:39 722 1

原创 Prometheus Operator自定义监控项

Prometheus Operator默认的监控指标并不能完全满足实际的监控需求,这时候就需要我们自己根据业务添加自定义监控。添加一个自定义监控的步骤如下:1、创建一个ServiceMonitor对象,用于Prometheus添加监控项2、为ServiceMonitor对象关联metrics数据接口的Service对象3、确保Services对象可以正确获取到metrics数据下面本文将以如何添加redis监控为例部署redisk8s-redis-and-exporter-deployment.

2020-11-30 12:04:13 1449

原创 MySQL错误修复:Table xx is marked as crashed and last (automatic?) repair failed

问题一 Table xx is marked as crashed and last (automatic?) repair failed有开发找到我,说数据库坏了,连不上数据库,看了下 MySQL 的错误日志,报错如下:Error: Table './db_name/table_name' is marked as crashed and last (automatic?) repair failed修复1、先停止 MySQL:service mysqld stop2、进入到 MySQL 数

2020-11-24 09:44:19 1092

原创 kubernetes存储类与PV与PVC关系及实践

StorageClass & PV & PVC关系图Volumes是最基础的存储抽象,其支持多种类型,包括本地存储、NFS、FC以及众多的云存储,我们也可以编写自己的存储插件来支持特定的存储系统。Volume可以被Pod直接使用,也可以被PV使用。普通的Volume和Pod之间是一种静态的绑定关系,在定义Pod的同时,通过volume属性来定义存储的类型,通过volumeMount来定义容器内的挂载点。PersistentVolume。与普通的Volume不同,PV是Kuber

2020-11-18 12:23:04 356

原创 手把手教你使用rpm部署ceph集群

环境准备1、在运行 Ceph 守护进程的节点上创建一个普通用户,ceph-deploy 会在节点安装软件包,所以你创建的用户需要无密码 sudo 权限。如果使用root可以忽略。为赋予用户所有权限,把下列加入 /etc/sudoers.d/cephecho"cephALL=(root)NOPASSWD:ALL"|tee/etc/sudoers.d/cephsudochmod0440/etc/sudoers.d/ceph2、配置你的管理主机,使之可通过 SSH无密码访...

2020-11-14 20:48:15 303

原创 记一次服务器被黑处理过程

今天开发说服务器很卡,让看看是什么情况,然后就有了下面的内容。咋一看kswapd0是一个内核进程,但是仔细看你会发现,USER是novel,一看就不正常。正常应该是root接下来顺藤摸瓜,继续看很明显,路径也不对,内核进程一般不会放到普通用户home目录下继续看下这个.configurc目录有什么东西到这里就基本确定是被黑了,init0脚本写的很明显,就是一个挖矿程序再看下novel用户计划任务以上可以看到,服务器是被黑了用来挖矿了现在来处理掉这个挖矿程序kill -9 1

2020-11-11 10:46:10 808 1

原创 Kubernetes YAML最佳实践和策略

Kubernetes工作负载最常用YAML格式的文件来定义。YAML的问题之一就是很难描述清单文件之间的约束或关系。如果你希望检查是否已从受信任的注册表中提取部署到群集中的所有映像,该怎么办?如何防止没有Pod安全策略的工作负载提交到集群?集成静态检查可以在更接近开发生命周期的时间内捕获错误和违反策略的行为。并且由于改善了资源定义的有效性和安全性,因此你可以相信生产工作负载遵循最佳实践。Kubernetes YAML文件的静态检查生态系统可以分为以下几类:API验证程序:此类工具针对Ku

2020-11-03 15:45:59 198

原创 Kubernetes Scheduler浅析

概述Kubernetes 调度器(Scheduler)是Kubernetes的核心组件;用户或者控制器创建Pod之后,调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。调度器会依据下文的调度原则来做出调度选择。kube-scheduler 给一个 pod 做调度选择包含两个步骤:过滤、打分过滤阶段会将所有满足 Pod 调度需求的 Node 选出来。例如,PodFi

2020-10-29 17:56:56 158

原创 Kubernetes 部署清单文件详解

本文以部署showdoc为例来讲解yaml配置文件定义StatefulSet定义Service定义Ingress

2020-10-09 16:12:10 270

原创 Kubernetes Pod水平自动伸缩(HPA)

HPA简介HAP,全称 Horizontal Pod Autoscaler, 可以基于 CPU 利用率自动扩缩 ReplicationController、Deployment 和 ReplicaSet 中的 Pod 数量。 除了 CPU 利用率,也可以基于其他应程序提供的自定义度量指标来执行自动扩缩。 Pod 自动扩缩不适用于无法扩缩的对象,比如 DaemonSet。Pod 水平自动扩缩特性由 Kubernetes API 资源和控制器实现。资源决定了控制器的行为。 控制器会周期性的调整副本控制器或

2020-09-30 09:36:26 274

原创 Kubernetes Pod垂直自动伸缩(VPA)

VPA 简介VPA 全称 Vertical Pod Autoscaler,即垂直 Pod 自动扩缩容,它根据容器资源使用率自动设置 CPU 和 内存 的requests,从而允许在节点上进行适当的调度,以便为每个 Pod 提供适当的资源。它既可以缩小过度请求资源的容器,也可以根据其使用情况随时提升资源不足的容量。PS: VPA不会改变Pod的资源limits值。废话不多说,直接上图,看VPA工作流程接下来开始实战部署metrics-server1、下载部署清单文件wget https:/

2020-09-29 09:03:49 1517

原创 在Kubernetes上部署应用时我们常忽略的几件事

根据我的经验,大多数人(使用Helm或手动yaml)将应用程序部署到Kubernetes上,然后认为他们就可以一直稳定运行。然而并非如此,实际使用过程还是遇到了一些“陷阱”,我希望在此处列出这些“陷阱”,以帮助您了解在Kubernetes上启动应用程序之前需要注意的一些问题。Kubernetes调度简介调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。kube-s

2020-09-27 15:46:07 212

原创 浅析Kubernrtes服务类型(Service Types)

先上图在Kubernetes集群中,service通过标签选择器选着对应的pod,然后对请求进行转发,看个动画,能直接了当体会到便签选择器pod,endpoints,service三者关系1、举个栗子说明先看部署文件,主要看注释部分。因为文件太长,本文删除了yaml文件的部分字段---apiVersion: apps/v1kind: StatefulSetmetadata: name: gogs labels: # 定义StatefulSet的标签,为后面Servic

2020-09-25 13:30:38 292

原创 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD

什么是CI/CD持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都需要通过自动化的编译、发布、自动化回归测试来验证,从而尽快地发现集成错误。而这些自动化的操作则由CI软件进行执行。持续部署(Continous Delivery,CD)在持续集成的基础上,将集成后的代码部署到真实运行环境中(本文指部署到kubernetes集群)。交付团队 ->版本控制 -&gt

2020-09-24 09:01:21 761

原创 容器云平台No.9~kubernetes日志收集系统EFK

EFK介绍EFK,全称Elasticsearch Fluentd Kibana ,是kubernetes中比较常用的日志收集方案,也是官方比较推荐的方案。通过EFK,可以把集群的所有日志收集到Elasticsearch中,然后可以对日志做分析。一般用于故障排查,数据分析等。。。数据流示意图官方项目https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch小技巧,如果只希望下

2020-09-23 08:55:44 192

原创 容器云平台No.8~kubernetes负载均衡之ingress-nginx

Ingress 是什么?Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。可以将 Ingress 配置为服务提供外部可访问的 URL、负载均衡流量、终止 SSL/TLS,以及提供基于名称的虚拟主机等能力。 Ingress 控制器 通常负责通过负载均衡器来实现 Ingress,尽管它也可以配置边缘路由器或其他前端来帮助处理流量。本文使用host network模式,示意图如下下载部署文件wget https://ra

2020-09-22 11:58:01 1040

原创 容器云平台No.7~kubernetes监控系统prometheus-operator

简介prometheus-operatorPrometheus:一个非常优秀的监控工具或者说是监控方案。它提供了数据搜集、存储、处理、可视化和告警一套完整的解决方案。作为kubernetes官方推荐的监控系统,用Prometheus来监控kubernetes集群的状况和运行在集群上的应用运行状况。Prometheus架构图那Prometheus Operator是做什么的呢?Operator是由CoreOS公司开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置

2020-09-21 13:30:55 206

原创 容器云平台No.6~企业级分布式存储Ceph

简介ceph作为一个统一的分布式存储系统,提供了高性能,高可用性,高扩展性。ceph的统一体现在其可以提供文件系统、块存储、对象存储,在云环境中,通常采用ceph作为后端存储来保证数据的高可用性。ceph发表于2004年,随后开源给社区。进过十几年发展,目前得到众多云厂商支持并广泛使用。比如openstack\kubernetes\虚拟机系统等。。。架构图:特点高性能采用CRUSH算法,数据分布均衡,并行度高。容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。能够支持

2020-09-20 16:00:00 204

原创 容器云平台No.5~企业级私有镜像仓库Harbor V2.02

镜像仓库仓库,顾名思义,就是存放东西的地方,Docker仓库,理所当然,就是存放docker镜像的地方了。Docker仓库分公有仓库和私有仓库。共有仓库有hub.docker.com、gcr.io、k8s.gcr.io等,一般常用开源应用程序的官方镜像都存放于共有仓库,但是鉴于这些仓库都在国外,下载速度比较慢。尤其k8s相关的镜像,得科学上网。私有仓库一般是公司内部自行搭建,用于存放内部构建的docker镜像,部署服务时从私有仓库下载,分发速度快。Docker 官方提供了一个搭建私有仓库的镜像 re

2020-09-19 21:12:11 236

原创 容器云平台No.4~kubernetes 服务暴露之Ingress

这是容器云平台第四篇,接上一篇继续,首先kubernetes服务暴露有如下几种方式:NodePortLoadbalanceClusterIPIngress本文紧贴第一篇架构图,只介绍Ingress,其余的后续再详细说。。Ingress是什么?Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP,当然TCP也是可以管理滴。Ingress 可以提供负载均衡、SSL 终结和基于域名的虚拟托管。大白话就是:把kubernetes集群生部署的服务暴露出来

2020-09-18 15:29:32 493 1

原创 容器云平台No.3~kubernetes使用

今天是是第三篇,接着上一篇继续首先,通过kubectl可以看到,三个节点都正常运行[root@k8s-master001 ~]# kubectl get no NAME STATUS ROLES AGE VERSIONk8s-master001 Ready master 16h v1.19.0k8s-master002 Ready master 16h v1.19.0k8s-master003 Ready mas

2020-09-17 09:26:11 149

原创 容器云平台No.2~kubeadm创建高可用集群v1.19.1

通过kubernetes构建容器云平台第二篇,最近刚好官方发布了V1.19.0,本文就以最新版来介绍通过kubeadm安装高可用的kubernetes集群。市面上安装k8s的工具很多,但是用于学习的话,还是建议一步步安装,了解整个集群内部运行的组件,以便后期学习排错更方便。。。本文环境如下:服务器:3台操作系统:CentOS 7拓扑图就不画了,直接copy官网的概述 简单说下这个图,三台服务器作为master节点,使用keepalive+haproxy对apiserver进行负载均衡,node节点和a

2020-09-16 18:25:16 500 1

原创 基于Docker及Kubernetes构建的容器云平台

##开篇最近整理笔记,不知不觉发现关于kubernetes相关的笔记已经达99篇了,索性一起总结了。算是对这两年做容器云平台的一个总结,本文是开篇,先介绍下所有用到的组件。首先来看下架构图(实在画的太丑,求推荐工具)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aqnlIvgY-1600251273259)(http://showdoc.ieasou.cn/server/index.php?s=/api/attachment/visitFile/sign/eb81a4aa

2020-09-16 18:18:23 1077

原创 kubernetes部署Percona XtraDB Cluster集群

PXC介绍全称percona-xtradb-cluster,提供了MySQL高可用的一种实现方法。PXC集群以节点组成(推荐至少3节点,便于故障恢复),每个节点都是基于常规的 MySQL Server,意味着你可以从集群中分离出某节点单独使用,集群中每个节点都包含完整的数据。PXC特性同步复制 支持多主复制 支持并行复制 作为高可用方案,实施相对简单架构图如下所示部署PXC集群到kubernetes1、下载部署文件gitclone-bv1.5.0ht...

2020-09-16 11:35:28 597 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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