k8s版本回滚工具k8simage-operator
为kubernetes集群部署提供版本回滚功能
需求场景
当master节点上存放的yaml无法在使用kubect set image时进行同步更新
官方提供的—record参数仅可能在kubectl set image时使用,回滚还需要额外的回滚操作命令,没有统一的UI界面
功能描述
提供展示部署后所有命名空间下的Deployment的容器镜像信息
提供回滚到对应版本的按钮update
提供本地存储的yaml文件预览(鼠标滑动到对应的yaml路径即可)
清理不需要的镜像版本信息delete(假删除,数据库中还有记录)
UI效果预览
部署要求K8simage-operator默认会统计集群中所有的Deployment,yamlfile文件在部署k8simage-operator容器时,此处默认挂载了/etc/kubernetes目录到容器中的/etc/kubernetes,使用nodeselector默认调度到master1,即存放yaml的机器。
想展示yaml的本地文件内容,需要在deployment中添加 annotations信息,例如: ...
greenplum集群操作指令及解决方法
gp集群如何部署就不过多介绍,主要是结合一下工作中要用到的指令和遇到的一些坑
操作规范gp集群的所有操作都是由master节点进行的,由master机器ssh到其他节点上进行自动化操作
安装部署gp集群时已经给master角色机器和standby角色机器添加了gpadmin用户.bashrc脚本
12345echo """source /usr/local/greenplum-db/greenplum_path.shexport MASTER_DATA_DIRECTORY=/data/master/gpseg-1""" >> /home/gpadmin/.bashrc
必须在gpadmin用户下进行,登录master机器后需要切换到gpadmin用户下
su – gpadmin
下面的所有操作都是在gpadmin用户下的操作
常用命令恢复mirror segment (primary复制到mirror)
12gprecoverseg -qo ./recovgprecoverseg -i ./recov
恢复到 ...
kata容器的一些分享
容器运行时kata的一些知识分享
kata运行时的地位kata-runtime的地位等同于runc运行时,所以可以替换containerd使用的运行时,在k8s中通过调用containerd,containerd使用kata达到使用。
docker使用kata是声明默认的运行时,以达到containerd替换默认运行时为kata
kata的一些功能无法实现使用kata会无法使用docker network的自动发现功能。
但是IP地址是可以通信的
kata最新版最新版
Release 2.1.0
kata在VMware 个人桌面的一些问题解决错误:ERROR: System is not capable of running Kata Containers
解决方法:
VMware虚拟机设置,处理器–》虚拟化引擎
勾选 虚拟化Intel VT-x/EPT
错误:ERRO[0000] kernel property not found arch=amd64 description=”Host Supportfor Linux VM Sockets” name=vhost_vsoc ...
Prometheus-Operator告警场景
利用Prometheus-Operator来监控k8s集群并进行告警
prometheus-operator告警场景环境准备准备环境k8s1.12+以上,k8s的部署就不过多介绍,有kube-admin,也有二进制部署,当然也可以参考我的k8s集群部署
基本上环境准备好了就如我的集群如下
各组件已经成功安装。
安装Prometheus-OperatorPrometheus-Operator原理介绍:参考我的Prometheus-Operator监控k8s
此处演示的Prometheus-Operator场景的安装yaml,下载地址:https://github.com/huisebug/Prometheus-Operator-Rules.git
manifests目录介绍1kubectl apply -f manifests/
多次执行上面的初始化安装确保prometheus-operator可用
注:上面的yaml是官方4月份发布的版本,经过多次测试可以适用于多个集群,其中修改了一些镜像地址为国内可快速拉取的地址和移除了prometheus-adapter的部署。
new目录 ...
Kubernetes集群搭建
这是一个k8s集群,从零开始搭建服务器环境,keepalived+haproxy实现集群高可用VIP;glusterfs搭建实现可持续存储;k8s1.12版本集群;efk日志系统;prometheus-operator告警系统;HPA v2横向pod扩容;k8s1.11+以上的版本部署基本没什么区别,无非就是优化了一些参数的配置和增加一些功能,舍弃一些api,此文档适用后续发布的其他版本的部署,提供一些部署思路。
硬件环境准备
服务器三台centos7.6
每台服务器两块硬盘,一块作为服务器硬盘,一块作为glusterFS硬盘
关闭firewalld防火墙和selinux
IP地址:192.168.137.10—12/24;主机名api、node1、node2.huisebug.com
使用阿里云yum源
下面的操作是之前使用k8s1.12.4搭建的,其中的参数同样适用于k8s.12.*,因为hpa的原因替换为了k8s1.11.8。
k8s版本1.11.8(2019年3月1号发布);
hpa在如下版本会会存在hpa无法获取内存的使用情况的bug, ...
Jenkins持续集成到Kubernetes集群
这是一个k8s集群结合jenkins做持续集成,以及jenkins流水线在k8s集群中运行。java编译后、nodejs编译后docker镜像制作。
准备环境K8s集群1.15.10
Docker-ce 19.03
nfs卷
服务器信息
1234192.168.137.100:k8s-master/k8s-node192.168.137.101:k8s-master/k8s-node192.168.137.102:k8s-master/k8s-node192.168.137.5:nfs服务、docker私有镜像仓库
nfs服务部署nfsinstall.sh
123456#!/bin/bashdocker run -d --restart=always --name nfs_server --privileged -p 2049:2049 \-v /data/nfs:/nfsroot \-h nfsserver \-e SHARED_DIRECTORY=/nfsroot \huisebug/nfs-server:latest
执行脚本即可在服务器上部署一个nfs服务
doc ...
Kubernetes-hpav2横向自动扩容
这是一个k8s集群验证hpav2的功能
HPA
Horizontal Pod Autoscaler根据观察到的CPU利用率自动调整复制控制器,部署或副本集中的pod数量(或者,使用自定义度量标准支持,根据其他一些应用程序提供的度量标准)。请注意,Horizontal PodAutoscaling不适用于无法缩放的对象,例如DaemonSet。
Horizontal Pod Autoscaler实现为Kubernetes API资源和控制器。资源确定控制器的行为。控制器会定期调整复制控制器或部署中的副本数,以使观察到的平均CPU利用率与用户指定的目标相匹配
Horizontal Pod Autoscaler如何工作?
Horizontal PodAutoscaler实现为控制循环,其周期由控制器管理器的–horizontal-pod-autoscaler-sync-period标志控制(默认值为15秒)。在每个期间,控制器管理器根据每个HorizontalPodAutoscaler定义中指定的度量查询资源利用率。控制器管理器从资源指标API(针对 ...
Prometheus-Operator监控k8s
这是一篇Prometheus-Operator监控k8s服务的部署、监控原理讲解、监控配置、告警模板配置。
初始条件:
K8s1.12+集群
Prometheus-operator 安装monitoring.coreos.com/v1 api(prometheus-operator)此处我们直接使用yaml文件方式安装,不使用helm安装,helm安装会缺少一些服务,不方便我们更深了解
1git clone https://github.com/coreos/prometheus-operator.git
已迁移到如下
12git clone https://github.com/coreos/kube-prometheus.gitcd prometheus-operator/contrib/kube-prometheus
12kubectl get pod --all-namespaceskubectl api-versions
如果整个集群是否设置tain,解除即可
1for i in api.huisebug.com node1.huisebug.com nod ...
mysql5.7主从复制及mycat1.6读写分离
本文档介绍如何在三台服务器利用docker搭建mysql5.7三机主从复制及mycat1.6实现数据库读写分离。
序言本文档介绍如何在三台服务器利用docker搭建mysql5.7三机主从复制及mycat1.6实现数据库读写分离。
环境需求
Docker
三台服务器 Centos 7 ,服务器名称使用IP地址末尾代替,分别为182,181,180.
唯一要求
12ulimit -n 根据实际进行设置
Dockerdocker的安装方式请参照官方地址:https://docs.docker.com/install/linux/docker-ce/centos/
其他系统请选择合适的方式安装。
MySQL主从搭建本方案的设计是1台主节点182,2台从节点181、180
182下的mysql.cnf
[mysqld]
#唯一id,如果开启主从功能则每台MySQL节点不能相同
server-id = 1
#开启mysql-log-bin功能
log-bin=mysql-bin
180下的mysql.cnf
[mysqld]
#唯一id,如果开启主从功能则每台MySQL节 ...
国内安装knative v0.6.0使用dockerhub镜像
本文是在基于官方knative的基础上进行安装,因为官方yaml中涉及太多的gcr.io镜像和配置文件中也包含gcr.io,便于国内用户进行研究学习而进行替换为可拉取镜像的yaml文件。其中主要是替换镜像的操作。
直接使用替换好的官方yaml文件请移步knative-image
Knative
knative官方githubknative官方安装方式
##官方下载yaml地址https://github.com/knative/serving/releases/download/v0.6.0/serving.yamlhttps://github.com/knative/build/releases/download/v0.6.0/build.yamlhttps://github.com/knative/eventing/releases/download/v0.6.0/release.yamlhttps://github.com/knative/serving/releases/download/v0.6.0/monitoring.yamlhttps://github.com/ ...