
云计算
文章平均质量分 68
qingyafan
分享云原生、GIS相关技术
展开
-
Kubernetes - Configmap热更新原理
GitHub地址: https://github.com/QingyaFan/container-cloud/issues/2Kubernetes中提供configmap,用来管理应用的配置,configmap具备热更新的能力,但只有通过目录挂载的configmap才具备热更新能力,其余通过环境变量,通过subPath挂载的文件都不能动态更新。这篇文章里我们来看看configmap热更新的原理,...原创 2019-11-01 01:02:40 · 12852 阅读 · 2 评论 -
Docker - 容器内应用和外部非容器应用互相访问方法
Docker搭建开发环境用的非常多,通常开发机器上既有容器形式的应用,又有本机跑着或者调试的程序,它们之间互相依赖,如何让它们之间通信顺畅,有时候是一个挺困难的事情。容器应用和容器外应用互相访问分为三种情况:容器内应用和容器内应用 容器内应用访问容器外应用 容器外应用访问容器内应用而根据两个互相通信的容器或应用在不在一台服务器上,我们又多出一个维度的情况:容器或应用在一台服务器 容...原创 2019-05-29 23:49:22 · 18773 阅读 · 7 评论 -
Kubernetes - 如何在一个完全离线的环境中快速建立一个kubernetes集群
要做的是什么我们讨论的是这样一个任务,在一个完全隔绝外网环境的多台机器(物理机或虚拟机)上自动化地建立kubernetes集群,这个任务包含一下几个要点:纯内网,与外网隔绝; 自动化,只需配置机器IP,即可安装,安装过程无需人工干涉; 假定机器上最小化安装的Centos Linux系统,没有ansible、kubeadm等工具使用,我们能用的只有 shell。想直接使用安装脚...原创 2019-06-13 23:36:14 · 1237 阅读 · 4 评论 -
PostgreSQL - 主从热备:可以分担主库流量,还能备份
常见的PG备份有三种方式:定时pg_dump,定时备份文件,还有基于WAL的备份,它们各有优劣,这篇文章我就对比一下这三种方法,总结一下三种的概念、做法,以及适合的场景。概念“pg_dump”很容易理解,对数据库定期使用pg_dump备份; “定时备份文件”,对数据库对数据目录进行备份; WAL是“write ahead log”的简称,pg中每个操作都会产生WAL,我们可以利用WAL...原创 2019-06-03 19:54:55 · 962 阅读 · 0 评论 -
Kubernetes - 记一次所有机器重启导致的集群问题
最近给客户部署的集群由于机器重启集群不能启动,首先执行kubectl get node,发现没有可用的node,于是去看centos的系统日志/var/log/message,日志中有x509,证书无效或已过期,心想,为啥重启集群会导致证书错误?且先记录下:x509,证书错误,无效或已过期于是从集群的基础从底层往上查,k8s将集群的信息会记录在etcd中,而各个节点由flannel分配...原创 2019-06-20 23:44:56 · 3670 阅读 · 0 评论 -
Kubernetes - flannel的默认网卡设置
前两天新配置了几台虚拟机,像往常一样安装集群,但是在flannel这一步总是有问题,查看日志:Failed to find any valid interface to use: failed to get default interface: Unable to find default route没找到有效的网卡设备,解决办法也很简单,在flannel的启动参数中指定网卡即可:...原创 2019-06-24 23:40:00 · 9494 阅读 · 0 评论 -
Kubernetes - 服务网格(service mesh)
1. 服务网格诞生的背景服务网格并不是新概念,微服务架构被越来越多的机构采用是服务网格诞生的大背景。微服务相对于多个服务一体的单体应用来说,有诸多好处,因而被越来越多的采用:技术可异构,各个服务之间采用RPC或HTTP通信,约定好接口,使用哪种技术或语言都可以; 鲁棒性,如果微服务之间的依赖关系处理的好,可以做到一个服务挂掉不影响其他服务; 组合,独立的微服务意味着可重用性强,可以...原创 2019-07-07 00:39:12 · 2801 阅读 · 0 评论 -
Docker - Docker重启!机器宕机!容器能自己恢复吗?
能!启动容器的时候,可以指定容器在某些可预测(docker engine重启)与不可预测(机器宕机重启)时的重启行为,利用这个功能,我们可以放心当重启docker engine,也不用担心机器重启导致应用不可用。这个神奇的功能是“restart polices”,定义了当容器因为某种原因停掉之后的行为,有四种police:四种重启策略no,无论什么时候容器因为什么原因宕掉,都不重...原创 2019-08-16 12:05:07 · 10492 阅读 · 0 评论 -
Docker - 制作一个合格的docker镜像,以及最佳实践
什么是镜像制作Docker镜像之前,我们先明确一下镜像是什么,百度百科对于镜像的定义如下:镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后,又恢复成许多文件,RAID 1和RAID 10使用的就是镜像。常见的镜像文件格式...原创 2019-06-06 16:28:01 · 2517 阅读 · 0 评论 -
Docker/Kubernetes - 调试
容器启动失败,单机环境下,我们可以这样检查原因:docker logs container_name docker inspect container_name在kubernetes容器云环境中,可以这样检查原因:kubectl logs pod_name kubectl describe pod pod_name其他情况有时候通过以上的方法也不行,例如,使用kubectl d...原创 2019-06-06 13:09:43 · 323 阅读 · 0 评论 -
Docker - 挂载目录(bind mounts)和Volume是不同的
2019/10/25更新:docker commit是不能对容器中volume声明的目录改动进行保存的,无论是Dockerfile中的VOLUME字段,还是docker-compose.yaml中的volumes配置。分割线,知乎上学到的套路。以下是原文:一直一来,对于多个容器需要共享访问同一数据目录,或者需要持久化容器内数据(如数据库)时,我们都是采用挂载目录形式(bind m...原创 2019-04-26 22:25:06 · 16868 阅读 · 1 评论 -
Docker - Volumes
类比挂载磁盘我们可以把volume看做挂载磁盘,将宿主机的一个目录挂载到容器内的某个目录,那么实际的文件是存储在宿主机的目录的,容器内只是一个挂载目录,并不存储实际文件。用处容器的存储和网络都是和宿主机隔离的,Volume给了从宿主机访问容器内目录的方法。Volume经常用于持久化容器的数据,比如数据库;暴露配置文件,在宿主机方便的修改容器内的文件。持久化数据对于一个数...原创 2018-09-12 08:31:49 · 888 阅读 · 0 评论 -
Kubernetes - nginx-ingress 配置跳坑指南
GitHub地址: https://github.com/QingyaFan/container-cloud/blob/master/kubernetes-ingress-2018-06-e.mdIngress是Kubernetes集群对外暴露服务的一种推荐方式,Ingress其实是封装了nginx(也可以是traefic),背后还是nginx在发挥作用,Ingress的作用是不断检测服务的e...原创 2018-09-13 18:12:01 · 29469 阅读 · 8 评论 -
Docker - 容器中的Loopback
Loopback概念TCP/IP协议族中包含一个虚拟网络接口(virtual network interface),通过这个接口同一主机上的不同网络应用就可以相互通信,发送到loopbackIP地址的通信会直接发送到本机的网络通信栈,被本机接受,不会真的发出去,而接受到这个通信的应用就像这个通信是来自其它主机一样消费它。我们常用的127.0.0.1和localhost都是loopback的,在...原创 2018-09-29 00:25:10 · 1807 阅读 · 0 评论 -
Kubernetes - 集群中容器访问集群外部服务
企业内部一般存在很多的微服务,在逐步容器化的过程中,会有部分服务在集群外部,未完成容器化,比如数据库,而部分已经完成容器化的依赖于这些服务的服务,过渡过程中,需要集群内部的容器访问集群外部的服务。为了在容器化过程中,让服务不中断,就需要让Kubernetes集群内部的容器能访问集群外部的服务,怎么做到呢,在每个应用的配置文件中使用外部IP或者外部rds名字吗?这样做,在外部的应用容器化后,还需要...原创 2018-10-16 14:31:17 · 9393 阅读 · 0 评论 -
PostGIS - ST_ClusterDBSCAN聚类算法
目录DBSCAN是什么?PostGIS中实现的一个聚类算法,可根据密度对要素进行聚类,该方法使用的是“DBSCAN”算法。DBSCAN是什么?“DBSCSN”并不是扫描数据库(scan database),而是“Density-based spatial clustering of applications with noise”的缩写,基于密度的空间聚类算法,适用于含有噪声数据的...原创 2019-01-27 23:11:56 · 4567 阅读 · 0 评论 -
PostgreSQL - 地理数据索引之争:GIST VS R-tree
目录GIST索引GiST原理R-tree索引R-tree原理 GiST VS R-tree创建时间支持的操作效率之争本文主要针对的是地理数据,地理数据的特点是具有二维或三维的坐标数据,且都是基于PostGIS扩展对地理数据的操作来说的。空间索引是空间数据库的关键所在,空间索引强,空间数据库支持大规模的数据才有意义,可以说空间索引的好坏决定了数据库的强弱。...原创 2019-02-01 22:09:49 · 5287 阅读 · 3 评论 -
PostgreSQL - Citus集群性能调优建议
调优思路Citus本身是一主多从的结构,Coordinator只负责协调分配任务,并不会处理实际的查询,Worker负责执行Coordinator分配的子查询任务,每个Worker本身就是一个完整的PostgreSQL环境,因此,提升Citus集群的性能就分为两部分:调优Coordinator制定执行计划的效率; 调优各个Worker执行的效率,跟调优单节点PostgreSQL无异。默...原创 2019-02-15 08:05:37 · 2493 阅读 · 0 评论 -
PostgreSQL - citus从入门到放弃,不是标题党
不知道这样的标题会不会被微软警告,最近,微软收购了 ? 年历史的 CitusData 公司,而我这里却要说Citus的不好?其实不是的,Citus确实有它适合的场景,但是,就像之前文章提到的,它也有不适合的场景,而我平时工作的很多需求就在不适合的场景之列。这里咱们复习一下Citus是什么?主要做什么?适合做什么,不适合做什么?Citus是什么?主要做什么?Citus是PostgreSQ...原创 2019-03-02 16:32:00 · 13422 阅读 · 2 评论 -
PostgreSQL - 让PostGIS用上PostgreSQL的并行
为啥放一张佩奇?它的真实面目其实是汽车里的涡轮,涡轮增压可以让小排量的发动机有大排量发动机的爆发力。佩奇都已经配送了涡轮,号称”涡轮猪“,PostgreSQL怎么能不跟跟时尚。postgresql中,并行计算就是涡轮,利用好并行计算,你的postgresql就是涡轮增压postgresql了,无痛享受数倍加速!怎么样,这个类比是不是有点尴尬,但话糙理不糙,总之,用并行计算为你的查询加速吧!...原创 2019-03-07 07:58:22 · 863 阅读 · 0 评论 -
PostgreSQL - PostgreSQL/PostGIS 性能调优
1、优化资源占用无法对服务器环境预估,所以PostgreSQL配置中参数都比较保守,不是对服务器资源量身定制,都默认是最小。其中两个参数,根据服务器实际资源情况调整会对性能影响很大:shared_buffers,缓存查询过程中的临时数据,内存的1/4比较合适,默认128M; work_mem,sort和hash表操作需要占用的内存,不够用时,会向磁盘中写文件,磁盘的性能和内存相差可不少,...原创 2019-03-13 08:21:58 · 2398 阅读 · 0 评论