CloudNative
文章平均质量分 61
OhMyScofield
运维相关技术闲聊,专业背锅内容媒体,想了解更多,请关注公众号:菜鸟运维杂谈
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 882 阅读 · 0 评论 -
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 · 455 阅读 · 0 评论 -
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 · 298 阅读 · 0 评论 -
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 · 410 阅读 · 0 评论 -
使用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 · 801 阅读 · 0 评论 -
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 · 657 阅读 · 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 · 1061 阅读 · 0 评论 -
Kubernetes应用管理器OpenKruise之CloneSet
OpenKruiseOpenKruise 是 Kubernetes 的一个标准扩展,它可以配合原生 Kubernetes 使用,并为管理应用容器、sidecar、镜像分发等方面提供更加强大和高效的能力。核心功能原地升级原地升级是一种可以避免删除、新建 Pod 的升级镜像能力。它比原生 Deployment/StatefulSet 的重建 Pod 升级更快、更高效,并且避免对 Pod 中其他不需要更新的容器造成干扰。Sidecar 管理支持在一个单独的 CR 中定义 sidecar 容器,原创 2020-12-23 17:01:51 · 1406 阅读 · 0 评论 -
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 · 837 阅读 · 0 评论 -
Kubernetes日志系统新贵Loki-Stack
Loki简介Grafana Loki是可以组成功能齐全的日志记录堆栈的一组组件。与其他日志记录系统不同,Loki是基于仅索引有关日志的元数据的想法而构建的:标签(就像Prometheus标签一样)。 然后,日志数据本身被压缩并存储在对象存储(例如S3或GCS)中的块中,甚至存储在文件系统本地。 小索引和高度压缩的块简化了操作,并大大降低了Loki的成本。相较于EKL,Loki就显得很轻量级了;用了Loki以后,ELK突然不香了!哈哈~~~Loki-stack组件先放两张图Promtail原创 2020-12-01 11:07:39 · 929 阅读 · 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 · 1671 阅读 · 0 评论 -
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 · 458 阅读 · 0 评论 -
手把手教你使用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 · 435 阅读 · 0 评论 -
Kubernetes YAML最佳实践和策略
Kubernetes工作负载最常用YAML格式的文件来定义。YAML的问题之一就是很难描述清单文件之间的约束或关系。如果你希望检查是否已从受信任的注册表中提取部署到群集中的所有映像,该怎么办?如何防止没有Pod安全策略的工作负载提交到集群?集成静态检查可以在更接近开发生命周期的时间内捕获错误和违反策略的行为。并且由于改善了资源定义的有效性和安全性,因此你可以相信生产工作负载遵循最佳实践。Kubernetes YAML文件的静态检查生态系统可以分为以下几类:API验证程序:此类工具针对Ku原创 2020-11-03 15:45:59 · 323 阅读 · 0 评论 -
Kubernetes Scheduler浅析
概述Kubernetes 调度器(Scheduler)是Kubernetes的核心组件;用户或者控制器创建Pod之后,调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。调度器会依据下文的调度原则来做出调度选择。kube-scheduler 给一个 pod 做调度选择包含两个步骤:过滤、打分过滤阶段会将所有满足 Pod 调度需求的 Node 选出来。例如,PodFi原创 2020-10-29 17:56:56 · 258 阅读 · 0 评论 -
Kubernetes 部署清单文件详解
本文以部署showdoc为例来讲解yaml配置文件定义StatefulSet定义Service定义Ingress原创 2020-10-09 16:12:10 · 364 阅读 · 0 评论 -
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 · 380 阅读 · 0 评论 -
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 · 1796 阅读 · 0 评论 -
在Kubernetes上部署应用时我们常忽略的几件事
根据我的经验,大多数人(使用Helm或手动yaml)将应用程序部署到Kubernetes上,然后认为他们就可以一直稳定运行。然而并非如此,实际使用过程还是遇到了一些“陷阱”,我希望在此处列出这些“陷阱”,以帮助您了解在Kubernetes上启动应用程序之前需要注意的一些问题。Kubernetes调度简介调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。kube-s原创 2020-09-27 15:46:07 · 325 阅读 · 0 评论 -
浅析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 · 396 阅读 · 0 评论 -
容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
什么是CI/CD持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都需要通过自动化的编译、发布、自动化回归测试来验证,从而尽快地发现集成错误。而这些自动化的操作则由CI软件进行执行。持续部署(Continous Delivery,CD)在持续集成的基础上,将集成后的代码部署到真实运行环境中(本文指部署到kubernetes集群)。交付团队 ->版本控制 ->原创 2020-09-24 09:01:21 · 922 阅读 · 0 评论 -
容器云平台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 · 263 阅读 · 0 评论 -
容器云平台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 · 1162 阅读 · 0 评论 -
容器云平台No.7~kubernetes监控系统prometheus-operator
简介prometheus-operatorPrometheus:一个非常优秀的监控工具或者说是监控方案。它提供了数据搜集、存储、处理、可视化和告警一套完整的解决方案。作为kubernetes官方推荐的监控系统,用Prometheus来监控kubernetes集群的状况和运行在集群上的应用运行状况。Prometheus架构图那Prometheus Operator是做什么的呢?Operator是由CoreOS公司开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置原创 2020-09-21 13:30:55 · 303 阅读 · 0 评论 -
容器云平台No.6~企业级分布式存储Ceph
简介ceph作为一个统一的分布式存储系统,提供了高性能,高可用性,高扩展性。ceph的统一体现在其可以提供文件系统、块存储、对象存储,在云环境中,通常采用ceph作为后端存储来保证数据的高可用性。ceph发表于2004年,随后开源给社区。进过十几年发展,目前得到众多云厂商支持并广泛使用。比如openstack\kubernetes\虚拟机系统等。。。架构图:特点高性能采用CRUSH算法,数据分布均衡,并行度高。容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。能够支持原创 2020-09-20 16:00:00 · 301 阅读 · 0 评论 -
容器云平台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 · 293 阅读 · 0 评论 -
容器云平台No.4~kubernetes 服务暴露之Ingress
这是容器云平台第四篇,接上一篇继续,首先kubernetes服务暴露有如下几种方式:NodePortLoadbalanceClusterIPIngress本文紧贴第一篇架构图,只介绍Ingress,其余的后续再详细说。。Ingress是什么?Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP,当然TCP也是可以管理滴。Ingress 可以提供负载均衡、SSL 终结和基于域名的虚拟托管。大白话就是:把kubernetes集群生部署的服务暴露出来原创 2020-09-18 15:29:32 · 586 阅读 · 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 · 240 阅读 · 0 评论 -
容器云平台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 · 592 阅读 · 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 · 1230 阅读 · 0 评论 -
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 · 771 阅读 · 2 评论
分享