
docker
文章平均质量分 66
qingyafan
分享云原生、GIS相关技术
展开
-
Docker - Docker重启!机器宕机!容器能自己恢复吗?
能!启动容器的时候,可以指定容器在某些可预测(docker engine重启)与不可预测(机器宕机重启)时的重启行为,利用这个功能,我们可以放心当重启docker engine,也不用担心机器重启导致应用不可用。这个神奇的功能是“restart polices”,定义了当容器因为某种原因停掉之后的行为,有四种police:四种重启策略no,无论什么时候容器因为什么原因宕掉,都不重...原创 2019-08-16 12:05:07 · 10492 阅读 · 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 - 记一次所有机器重启导致的集群问题
最近给客户部署的集群由于机器重启集群不能启动,首先执行kubectl get node,发现没有可用的node,于是去看centos的系统日志/var/log/message,日志中有x509,证书无效或已过期,心想,为啥重启集群会导致证书错误?且先记录下:x509,证书错误,无效或已过期于是从集群的基础从底层往上查,k8s将集群的信息会记录在etcd中,而各个节点由flannel分配...原创 2019-06-20 23:44:56 · 3670 阅读 · 0 评论 -
Kubernetes - 如何在一个完全离线的环境中快速建立一个kubernetes集群
要做的是什么我们讨论的是这样一个任务,在一个完全隔绝外网环境的多台机器(物理机或虚拟机)上自动化地建立kubernetes集群,这个任务包含一下几个要点:纯内网,与外网隔绝; 自动化,只需配置机器IP,即可安装,安装过程无需人工干涉; 假定机器上最小化安装的Centos Linux系统,没有ansible、kubeadm等工具使用,我们能用的只有 shell。想直接使用安装脚...原创 2019-06-13 23:36:14 · 1237 阅读 · 4 评论 -
Docker - 容器内应用和外部非容器应用互相访问方法
Docker搭建开发环境用的非常多,通常开发机器上既有容器形式的应用,又有本机跑着或者调试的程序,它们之间互相依赖,如何让它们之间通信顺畅,有时候是一个挺困难的事情。容器应用和容器外应用互相访问分为三种情况:容器内应用和容器内应用 容器内应用访问容器外应用 容器外应用访问容器内应用而根据两个互相通信的容器或应用在不在一台服务器上,我们又多出一个维度的情况:容器或应用在一台服务器 容...原创 2019-05-29 23:49:22 · 18773 阅读 · 7 评论 -
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 评论 -
Kubernetes - GC的镜像自动清理导致的问题
Kubernetes集群随着应用的迭代,会产生很多无用的镜像和容器,因此需要定时清理,分布在每个节点的Kubelet有GC(垃圾收集)的职责,当集群中有断定为垃圾的镜像或容器,那么kubelet会清除掉相关镜像或容器。容器GC间隔为1分钟,镜像GC间隔为5分钟。而这在某些情况下会产生问题,如:私有离线部署环境中,如果某个node节点相关的镜像被清理了,当在这个启动相关容器就会失败,由于是离线,那么...原创 2019-04-16 20:52:26 · 4848 阅读 · 1 评论 -
Kubernetes - 集群中容器访问集群外部服务
企业内部一般存在很多的微服务,在逐步容器化的过程中,会有部分服务在集群外部,未完成容器化,比如数据库,而部分已经完成容器化的依赖于这些服务的服务,过渡过程中,需要集群内部的容器访问集群外部的服务。为了在容器化过程中,让服务不中断,就需要让Kubernetes集群内部的容器能访问集群外部的服务,怎么做到呢,在每个应用的配置文件中使用外部IP或者外部rds名字吗?这样做,在外部的应用容器化后,还需要...原创 2018-10-16 14:31:17 · 9393 阅读 · 0 评论 -
Docker - 容器中的Loopback
Loopback概念TCP/IP协议族中包含一个虚拟网络接口(virtual network interface),通过这个接口同一主机上的不同网络应用就可以相互通信,发送到loopbackIP地址的通信会直接发送到本机的网络通信栈,被本机接受,不会真的发出去,而接受到这个通信的应用就像这个通信是来自其它主机一样消费它。我们常用的127.0.0.1和localhost都是loopback的,在...原创 2018-09-29 00:25:10 · 1807 阅读 · 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 - Volumes
类比挂载磁盘我们可以把volume看做挂载磁盘,将宿主机的一个目录挂载到容器内的某个目录,那么实际的文件是存储在宿主机的目录的,容器内只是一个挂载目录,并不存储实际文件。用处容器的存储和网络都是和宿主机隔离的,Volume给了从宿主机访问容器内目录的方法。Volume经常用于持久化容器的数据,比如数据库;暴露配置文件,在宿主机方便的修改容器内的文件。持久化数据对于一个数...原创 2018-09-12 08:31:49 · 888 阅读 · 0 评论