二进制部署 etcd v3.4.16 集群
Write by lyc at 2021-7-12etcd.ioetcd GitHubetcd集群搭建(高可用)从零开始入门 K8s | 手把手带你理解 etcd
二进制部署 etcd v3.4.16 集群一、etcd 数据库简介1.etcd 数据库介绍etcd 是一个分布式键值存储数据库,可用于服务发现。etcd 采用 raft 一致性算法,基于 Go 语言实现。
etcd 作为一个高可用键值存储系统,天生就是为集群化而设计的。
由于 Raft 算法在做决策时需要超半数节点的投票,所以 etcd 一般部署集群推荐奇数个节点。推荐的数量为3(容忍1台故障)、5(容忍2台故障)或者7(容忍3台故障)个节点构成一个集群。
2.etcd 四个特点
简单:基于HTTP+JSON的API让你用curl命令就可以轻松使用。
安全:可选SSL客户认证机制。
快速:每个实例每秒支持一千次写操作。
可信:使用Raft算法充分实现了分布式。
3.etcd 关键词汇
Raft:etcd所采用的保证分布式系统强一致性的算法。
Node:一个Raft状态机实例。
Member: 一个etcd实例。它管理着 ...
Python包发布到Pypi
Write by lyc at 2021-7-6Python 包的发布发布你自己的轮子 - PyPI打包上传实践
Python包发布到Pypi1.安装工具12$ pip install pip setuptools wheel twine$ pip install --upgrade pip setuptools wheel twine
2.目录结构
src 目录下是需要发布的包
tests 是单元测试目录,与发布无关。
其他各个文件含义与写法请参考 官方文档:Packaging Python Projects
3.使用setup.py打包setup.py123456789101112131415161718192021222324252627282930$ vim setup.py import setuptoolswith open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read()setuptools.set ...
docker 安装zabbix-4.0.16
Write by lyc at 2021-7-1zabbix containers downloadzabbix Installation from containersDocker安装Zabbix
docker 安装zabbix-4.0.161.宿主机服务器配置
服务器内网IP:10.13.87.97
操作系统:CentOS 7.9
数据库:MySQL 5.7.33
123456789101112# 宿主机服务器配置国内时区文件$ timedatectl set-timezone Asia/Shanghai$ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime$ echo "Asia/Shanghai" > /etc/timezone# 自定义告警脚本(可选)$ mkdir -p /etc/docker/zabbix-server # 创建宿主机 zabbix-server 目录(可选)$ cd /etc/docker/zabbix-server$ rz alertscripts_2 ...
配置国内 pypi 源
Write by lyc 2021-6-30
配置国内 pypi 源
python pip源配置UCloud PyPI私有源配置
Pypi
URL
备注
Pypi官方源
https://pypi.python.org/simple
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple
pypi 镜像使用帮助
阿里云
http://mirrors.aliyun.com/pypi/simple/
豆瓣
http://pypi.douban.com/simple/
其他 pip install 国内镜像源
pip install 命令行指定 pypi 源
1234$ pip install ${PACKAGE} -i https://pypi.tuna.tsinghua.edu.cn/simple# 单次下载包从阿里云$ pip install ${PACKAGE} --no-cache-dir -i http://mirrors.aliyun.com/pypi/si ...
kubernetes Pod 重启的几种方式
Write by lyc at 2021-06-03重启 Kubernetes Pod的几种方式
kubernetes Pod 重启的几种方式在使用 docker 的过程中,我们可以使用 docker restart {CONTAINER_ID} 来重启容器,但是在 kubernetes 中并没有重启容器命令。
有时候我们的 Pod 出现 Bug 意外终止,导致我们需要重启 Pod ,却没有一个很好的方式,特别是没有 yaml 文件的情况下。
Pod 容器重启策略 restartPolicy 配置
Kubernetes 容器重启策略
Pod 的 spec 中包含一个 restartPolicy 字段,其可能取值包括:
Always 默认策略,当容器终止退出后,总是重启容器。
OnFailure 当容器异常退出(退出状态码非0)时,才重启容器。
Never当容器终止退出,从不重启容器。
restartPolicy 适用于 Pod 中的所有容器,仅针对同一节点上 kubelet 的容器重启动作。所以其配置级别与 containers 关键字同级。
12345c ...
Docker 安装 Jenkins-2.263.1
Jenkins 官网Docker 安装 Jenkins (超详细)docker安装jenkins
Docker 安装 Jenkins-2.263.11.下载 jenkins docker 镜像
Jenkins Dockerhub
我这里使用基于 centos7 为基础的 Jenkins镜像,因为我的宿主机也是 Centos7,并且在构建过程中需要使用诸多 centos7 下原生命令。
1$ docker pull jenkins/jenkins:2.263.1-lts-centos7
2.修改 docker systemd 启动脚本修改 docker systemd 启动脚本,对 /var/run/docker.sock 赋予 0777 权限,供挂载的容器使用宿主机的 docker
12345678$ vim /etc/systemd/system/docker.service...[Service]ExecStartPost=/usr/bin/chmod 0777 /var/run/docker.sock...systemctl daemon-reloadsystemctl r ...
Kubernetes CICD(一):K8S集群内部署Jenkins Master
Jenkins官网Ucloud UK8S 基于Jenkins的CI/CD实践
先来了解一下 Jenkins 主从结构。
一、Jenkins 主从架构简介Q1.Jenkins 主从架构解决了什么问题?
Jenkins 主从架构目的是为了解决 Jenkins Master 单点负载的问题。
Q2.Jenkins 常见的两种主从结构:
传统的 Jenkins Master Slave 架构:
Jenkins Master 收到 Job 后,将请求转发到 Slave 节点处理 Job,特点是 Slave 节点数量固定。
K8S+Jenkins Master Slave 架构:
当 Jenkins Master 接受到 Build 请求时,会根据配置的 Label 动态创建一个运行在 Pod 中的 Jenkins Slave 并注册到 Master 上,当运行完 Job 后,这个 Slave 会被注销并且这个 Pod 也会自动删除,恢复到最初状态。
Jenkins Master 可以是 K8S 的常驻服务,也可以是外部的自建 Jenkins Master。
相对 ...
Kubernetes PV持久卷和PVC持久卷声明
Kubernetes 持久卷
概念PV 的全称是:PersistentVoIume(持久化卷),是对底层的共享存储的一种抽象,PV由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接。
PVC的全称是:PersistentVolumeClaim(持久化卷声明),PVC是用户存储的一种声明,PVC和Pod比较类似,Pod消耗的是节点,PVC消耗的是PV资源,Pod可以请求CPU和内存,而PVC可以请求特定的存储空间和访问模式。对于真正使用用存储的用户不需要关心底层的存储实现细节,只需要直接使用PVC即可。
但是通过PVC请求到一定的存储空间也很有可能不足以满足应用对于存储设备的各种需求,而且不同的应用程序对于存性能的要求可能也不尽相同,比如读写速度、并发性能等,为了解决这一问题,Kubernetes又为我们引入了一个新的资源对象:StorageClass,通过StorageClass的定义,管理员可以将存槠资源定义为某种类型的资源,比如快速存槠、慢速存储等,用户根据StorageClass ...
Kubernetes 基于 NFS 的 PV动态供给
Kubernetes 基于 NFS 的 PV动态供给StorageClass 概念前面所介绍的的 PV持久卷、PVC持久卷声明都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适了,这种情况下我们就需要用到动态 PV,也就是 StorageClass
创建要使用 StorageClass,我们就得安装对应的自动配置程序,比如我们这里存储后端使用的是 nfs,那么我们就需要使用到一个 nfs-client 的自动配置程序,我们也叫它 Provisioner,这个程序使用我们已经配置好的 nfs 服务器来自动创建持久卷,也就是自动帮我们创建PV 。这种方式也叫做 PV 的动态供给。
自动创建的 PV以 ${namespace}-${pvcName}-${pvName} 这样的命名格式创建 ...
Kubernetes Volume 数据卷
Kubernetes VolumesUK8S Volume 介绍
Kubernetes Volume 数据卷K8S Volume 概念我们知道,容器中的磁盘文件是临时的,一旦容器运行结束,其文件也会丢失。如果数据需要长期存储,那就需要对容器数据做持久化支持,在就涉及到 Kubernetes 中的一个核心概念 Volume。 Kubernetes 和 Docker 类似,也是通过 Volume 的方式提供对存储的支持。Kubernetes 中 的 Volume 与 Docker 中的 Volume 类似,主要的区别如下:
Kubernetes 中的 Volume 被定义到 Pod 层面,Volume 可以被 Pod 中的多个容器挂载到相同或不同的路径。
Kubernetes 中的 Volume 与 Pod 的生命周期相同,但与容器的生命周期不相关。当容器终止或重启时,Volume 中的数据不会丢失。
当 Pod 被删除时,Volume 才会被清理。并且数据是否丢失取决于 Volume 的具体类型,比如:emptyDir 类型的 Volume 数据会丢失,而 PV 类型的数据则不会 ...