一、Velero 简介
Velero 是开源的Kubernetes集群备份迁移工具,使用对象存储保存集群资源,默认支持的存储有aws,azure,gcp 兼容S3协议。
二、Velero 安装
macos
1
brew install velero
linux
下载对应平台的release 解压安装
windows
1 | choco install velero |
你想到的地方,即便天涯,也近在咫尺
Velero 是开源的Kubernetes集群备份迁移工具,使用对象存储保存集群资源,默认支持的存储有aws,azure,gcp 兼容S3协议。
macos
1 | brew install velero |
linux
下载对应平台的release 解压安装
windows
1 | choco install velero |
more >>容器的大肆流行让环境部署变得简单起来,但是技术人员还是不满足与部署简单,还行在大规模集群应用中,应用可以很好的在集群中自动伸缩和故障自动调度,在这一块,容器的调度和伸缩是通过启动新容器和删除旧容器实现的,但是对于自动伸缩而言,容器中的服务完全有可能在一些请求没有处理完的时候被回收掉,那作为软件开发者应该怎么去避免这种情况呢?这篇文章,我们从实战出发,探究kubernetes的pod回收机制。
有些时候我们不想使用Nginx-ingress的默认的404错误页面,或者我们想在后端service不可用的时候不暴露给客户端nginx 503 Service Temporarily Unavailable 的页面,那怎么办?Nginx-ingress 提供了Custom errors来帮我们解决.
服务网格是描述微服务网络以及它们之间的交互,一个Pod是否处于服务网格内,要看这个Pod是否被注入
随着服务网格规模的和复杂度不断增长,服务网格变得越难越理解和管理,Istio就是来管理服务网格的,它的功能包含:解决服务发现,负载均衡,故障恢复,度量和监控,以及更为复杂的运维需求,比如A/B测试,金丝雀发布,速率限制、访问控制和端对端认证
Istio 可以轻松为一个已经部署的服务创建网格,而服务的代码只需很少甚至不用更改,其使用sidecar代理为服务添加Istio的支持,而代理会拦截微服务之间的所有网络通信
容器的持久化存储
容器的持久化存储是保存容器存储状态的重要手段,存储插件会在容器里挂载一个基于网络或者其他机制的远程数据卷,使得在容器里创建的文件,实际上是保存在远程存储服务器上,或者以分布式的方式保存在多个节点上,而与当前宿主机没有任何绑定关系。这样,无论你在其他哪个宿主机上启动新的容器,都可以请求挂载指定的持久化存储卷,从而访问到数据卷里保存的内容。
由于 Kubernetes 本身的松耦合设计,绝大多数存储项目,比如 Ceph、GlusterFS、NFS 等,都可以为 Kubernetes 提供持久化存储能力。
Ceph分布式存储系统
Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,您将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,您还可以找到Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。
Rook
Rook 是一个开源的cloud-native storage编排, 提供平台和框架;为各种存储解决方案提供平台、框架和支持,以便与云原生环境本地集成。
Rook 将存储软件转变为自我管理、自我扩展和自我修复的存储服务,它通过自动化部署、引导、配置、置备、扩展、升级、迁移、灾难恢复、监控和资源管理来实现此目的。
Rook 使用底层云本机容器管理、调度和编排平台提供的工具来实现它自身的功能。
Rook 目前支持Ceph、NFS、Minio Object Store和CockroachDB。
Rook使用Kubernetes原语使Ceph存储系统能够在Kubernetes上运行。下图说明了Ceph Rook如何与Kubernetes集成
more >>可以看到我们创建了3个POD,并以service暴露其80端口,
1
2
3
4
5
6
7
8
9 kubectl run web --image nginx --replicas 3 && kubectl expose deployment web --port 80
$ [K8sNDev] kubectl get pod,service -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/web-57cfbc8957-2dmq6 1/1 Running 0 29s 100.74.135.1 node3 <none> <none>
pod/web-57cfbc8957-c2cp4 1/1 Running 0 29s 100.108.11.194 node2 <none> <none>
pod/web-57cfbc8957-qcbvc 1/1 Running 0 29s 100.66.209.194 node1 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/web ClusterIP 10.104.197.218 <none> 80/TCP 24s run=web
1 | var 变量名 [元素个数]Type |
1 | var nums = [6]int{1,2,3,4,5,6} |
1 | var books = [...]string{"apple","xiaomi","dell"} |
1 | package main |
数组是声明时分配一段固定长度的内存区域,而切片是动态分配大小的连续空间,切片内部结构包含地址,大小,容量。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia-plus根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true