Blogs

是时候表现一下我的vim了

kubernetes集群三步安装 探讨可加QQ群:98488045

使用vim作golang开发

分享一些我使用的vim插件,以及制作过程,最终的功能有:

  • golang开发,补全,跳转,文件列表,函数列表等
  • kubernetes插件,方便写yaml文件
  • 好看的颜色主题

Continue reading

keepalived in docker

kubernetes集群三步安装

概述

目前keepalived作为kubernetes集群高可用的重要组件,保障虚拟ip可以在多个主机间漂移,sealos 也是使用了,只是在方案上与传统的方式有很大区别

首先把keepalived放到容器里了,版本也用了比较新的2.x.x以上

然后使用kubernetes static pod去管理keepalived服务

keepalived放到容器里的好处

  • 安装成功率更高,更跨平台, 传统方式如用yum安装或者其它,如果采用那些办法在别的一些发型版系统上sealos就不可用。其次,很多系统的源不一样导致版本不一致造成问题,如果通过源码编译可能一些系统库版本直接导致编译不通过,所以为了提高高可用的安装成功率,放容器里是最好的方式
  • 无需额外对keepalived增加监控, 因为是pod,而sealos又已经集成了prometheus,所以不需要再额外添加监控信息
  • 统一管理, keepalived异常退出什么的kubelet也会将其拉起,与其它的kubernetes组件就有了一个统一的方式管理

Continue reading

关于sealyun营销系统

概述

任何用户都可以通过sealyun赚钱,很方便的获取到一个分享链接,如果别的用户是通过你的分享链接购买商品的那么您将获得一笔不错的提成,目前是交易金额的60%,

也就是如商品50元,别的用户通过您的链接购买成功,您可获得30元,平台获得20元

操作步骤

  1. 获取营销链接 网站地址http://store.lameleg.com/

Continue reading

使用prometheus operator监控envoy

kubernetes集群三步安装

概述

prometheus operator应当是使用监控系统的最佳实践了,首先它一键构建整个监控系统,通过一些无侵入的手段去配置如监控数据源等 故障自动恢复,高可用的告警等。。

不过对于新手使用上还是有一丢丢小门槛,本文就结合如何给envoy做监控这个例子来分享使用prometheus operator的正确姿势

至于如何写告警规则,如何配置prometheus查询语句不是本文探讨的重点,会在后续文章中给大家分享,本文着重探讨如何使用prometheus operator

Continue reading

kube-scheduler定制,支持深度学习批处理任务调度

kubernetes集群三步安装

什么是批处理任务

深度学习中经常会出现多机多卡的任务,也就是同事会起多个pod,但是这多个pod属于同一个任务。

这样就会有一个问题

一个任务要起100个pod,每个pod需要一张卡,总共需要100张GPU卡,而集群中只有99张空闲的GPU卡,这样默认的k8s调度器会如何处理?

因为默认调度器是一个一个pod调度的,只会检查单个pod资源够不够,这样前99个都能成功,最后一个pod调度失败。

这样非常有可能造成

  1. 任务跑不了
  2. 前99个占着GPU不释放,新的任务无法调度
  3. 严重时整个集群死锁,都“占着茅坑不拉屎”

Continue reading

sealyun kubernetes离线包文档

前言

商品介绍

安装包通过kubeadm安装kubernetes集群,包含:

  • 核心基础组件 etcd apisver kubelet kube-proxy scheduler manager
  • addon组件 dashboard calico promethus grafana alertmanager node-exporter coreDNS

启用IPVS

可以内网环境进行安装,但是不包含docker

Continue reading

kubeadm杂谈

kubernetes集群三步安装

kubeadm 1.13版本

此版本更新了不少东西,以前老的配置不再适用

W1205 19:10:23.541054   58540 strict.go:54] error unmarshaling configuration schema.GroupVersionKind{Group:"kubeadm.k8s.io", Version:"v1beta1", Kind:"InitConfiguration"}: error unmarshaling JSON: while decoding JSON: json: unknown field

Continue reading

修改kubeadm证书过期时间

kubernetes集群三步安装

修改kubeadm证书过期时间

本文通过修改kubeadm源码让kubeadm默认的一年证书过期时间修改为99年

我已经编译好了一个放在了github上,有需要的可以直接下

使用方法:

[root@dev-86-202 ~]# chmod +x kubeadm && cp kubeadm /usr/bin
[root@dev-86-202 ~]# rm /etc/kubernetes/pki/ -rf
[root@dev-86-202 ~]# kubeadm alpha phase certs all --config  kube/conf/kubeadm.yaml

Continue reading

kubernetes源码分析之kube-scheduler - 从代码看原理

kubernetes集群三步安装

kube-scheduler源码分析

关于源码编译

我嫌弃官方提供的编译脚本太麻烦,所以用了更简单粗暴的方式编译k8s代码,当然官方脚本在编译所有项目或者夸平台编译以及realse时还是挺有用的。

在容器中编译:

docker run -v /work/src/k8s.io/kubernetes:/go/src/k8s.io/kubernetes golang:1.11.2 bash

在容器中可以保证环境干净

进入bash后直接进入kube-scheduler的主目录编译即可

Continue reading

构建生产环境可用的高可用kubernetes集群

kubernetes集群三步安装

k8s 1.14以上版本请直接参考sealos readme

sealos是一个轻量级kubernetes HA安装项目,重点关注功能的收敛而非庞大复杂厚重,旨在容易定制。除kubelet意外其它任何组件均在容器中运行 这样做的好处有几点:

  1. 保证一致性,这样避免掉很多因宿主环境问题导致的安装失败,如keepalived版本问题,系统库问题等等
  2. 统一管理统一监控,这样我们就不需要为如keepalived etcd haproxy单独配置进程级别的监控,仅要监控pod即可,kubelet也会对这些容器做比较好的管理,如自动拉起等

Continue reading