• 杀死一只小鲸鱼

    docker容器退出会收到哪些信号? docker stop docker kill docker rm -f 应用应该处理哪个信号? 应用是怎么接收到信号的 之所以会有这个主题,是因为这几天我给mysql集群前置了一个keepalived,为了方便也做成了docker镜像,丢给k8s来部署。但实际测试时发现,当停止或者删除keepalived容器后,网卡上还残余之前keepalived下发的virtual ip。 直...


  • kubernetes如何解决服务依赖呢?

    如何知道Pod已经Ready 延迟应用的部署 结论 原文链接在此。写的比较通俗易懂,做个笔记,有一些是我自己的理解。 在微服务的世界里,任何应用都需要注意,其所依赖的服务是会中断的。所以当应用发现某服务(如数据库)出现了故障,应该每隔一端时间去重试。而上层框架(如k8s)会检测到服务故障,并尝试恢复这个服务。 但在现实世界里,有些旧应用并没有处理这种情况,但我们还是希望能将他们也跑在微服务框架里,以期得到微服务的红利(例如应用故障重启),所以,需要定义服务依赖关系,从而保障旧应用...


  • k8s镜像:安装kubernetes,访问不了gcr.io怎么办?

    注意:本文内容已经过时,Azure中国提供了gcr.io/k8s.gcr.io镜像代理服务,请参考新的blog。 github开启对docker hub的读授权 Dockerfile上github Docker Hub上创建Automated build 取到本地并push到private Registry 补 如何使用 本blog权且当做一个对docker Automated Build的介绍吧。 之前在安装k8s的时候,我们...


  • kubernets: Persistent Volume & Persistent Volume Claim

    安装NFS 创建一个5GB的PV 创建一个带PVC的nginx RC 验证 k8s 1.5版本支持了有状态应用StatefullSet,其中一个很重要的技术支撑点就是,持久化存储。 在前面介绍Statefull的时候,我把涉及到PV的地方改为使用HostPath+nodeSelector来代替了,虽然可以达到“有状态”的目的,但是应用如果要保证数据的HA,需要应用本身起多副本,并且副本之间需要能够自行完成数据的备份。 要求有点高。 更好的做法是什么呢?回过头来看,如果将应用...


  • 多说要关闭了

    我的讨论框插件用的是多说,其实也说不上多满意,因为故障率还是挺高的,后台有时会打不开。但总归还是可以用的,所以也没有去关注有没有其他的讨论框插件。 结果今天一开邮箱,看到了这么封邮件: 尼玛。 多说是如何盈利的,一直是个未解之谜。知乎上有几个相关的问题,但都是0回答,侧面也反映了多说的现状,关闭也就不奇怪了。 多说关闭了以后,评论框可以用谁家的呢? 推荐下网易的 云跟帖 ,使用方法跟多说类似,获取代码然后贴到自己blog里就好了,具体效果你拉倒本文最后就可以看到了。 网易云跟帖有导入 ...


  • kubernets: Headless Services

    我知道Service,但Headless Services 是用来做什么的呢? Headless Service也是一种Service,但不同的是会定义spec:clusterIP: None,也就是不需要Cluster IP的Service。 还记得Service的Cluster IP是做什么的吗?对,一个Service可能对应多个EndPoint(Pod),client访问的是Cluster IP,通过iptables规则转到Real Server,从而达到负载均衡的效果(实现原理请见这里)。...


  • kubernets: StatefulSets Basics

    Objectives Before you begin Creating a StatefulSet Pods in a StatefulSet Scaling a StatefulSet Updating Containers Deleting StatefulSets 原文在这。部分涉及到PV的地方做了修改。 Objectives StatefulSets是为了有状态的应用和分布式系统设计的。然而有状态应用、分布式系统的管理是一个宽泛、复杂的主题。为了演示St...


  • 怎么设置pxe安装时使用的cobbler的默认ks?

    在之前的如何为linux集群批量装机?中,提到了可以使用cobbler来安装pxe装机环境,最近在写cobbler安装的脚本,遇到了一个问题: 怎么设置pxe安装时使用的cobbler的默认ks? 之前解决过这个问题,但是时过境迁已经完全忘记了,这里记录下过程。 cobbler import --arch=x86_64 --path=/mnt/iso --name=CentOS-7 cobbler signature update cobbler profile edit --name=Ce...


  • kubernets部署备忘

    记录下GFW内k8s的部署流程,备忘。 1、各节点上配置hostname,配置resole.conf echo "titan1" > /etc/hostname sysctl kernel.hostname="titan1" echo "nameserver x.x.x.x" >> /etc/resolv.conf 2、各节点上加k8s的repo cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernete...


  • 谈谈kubernets的service组件的Virtual IP

    Service kube-proxy NodePort k8s的pod可以有多个副本,但是在访问pod时,会有几个问题: 客户端需要知道各个pod的地址 某一node上的pod如果故障,客户端需要感知 为了解决这个问题,k8s引入了service的概念,用以指导客户端的流量。 Service 以下面的my-nginx为例。 pod和service的定义文件如下: [root@localhost k8s]# cat run-my-nginx.yaml apiVe...