/logo_transparent.png

蜷缩的蜗牛

专注云原生运维

Kubernetes创建只读用户

1 安装cfssl

1
2
3
4
5
6
7
8
9
mkdir -p /nfs/k8s-backup/readonly
cd /nfs/k8s-backup/readonly
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
mv cfssl_linux-amd64 cfssl
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
mv cfssljson_linux-amd64 cfssljson
wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
mv cfssl-certinfo_linux-amd64 cfssl-certinfo
chmod +x *

2 签发客户端证书

根据ca证书和秘钥签发用户证书,kubeadm工具安装是默认生成存放在/etc/kubernetes/pki目录下

Sentry 监控 - Snuba 数据中台本地开发环境配置实战

自建k8s部署aws-Ebs-Csi-Driver

创建 aws IAM权限

1
https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/v1.13.0/docs/example-iam-policy.json

获取AK、SK

部署aws-ebs-csi-driver

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
kubectl create secret generic aws-secret \
    --namespace kube-system \
    --from-literal "key_id=${AWS_ACCESS_KEY_ID}" \
    --from-literal "access_key=${AWS_SECRET_ACCESS_KEY}"
``

```yaml
# helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver

# helm upgrade --install aws-ebs-csi-driver --version 2.13.0\
    --namespace kube-system \
    aws-ebs-csi-driver/aws-ebs-csi-driver \
    --set sidecars.provisioner.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/csi-provisioner \
    --set sidecars.attacher.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/csi-attacher \
    --set sidecars.snapshotter.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/csi-snapshotter \
    --set sidecars.livenessProbe.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/livenessprobe \
    --set sidecars.resizer.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/csi-resizer \
    --set sidecars.nodeDriverRegistrar.image.repository=registry.cn-hangzhou.aliyuncs.com/seam/csi-node-driver-registrar \
    --set node.kubeletPath=/data/k8s/kubelet
# kubectl get pod -n kube-system -l "app.kubernetes.io/name=aws-ebs-csi-driver,app.kubernetes.io/instance=aws-ebs-csi-driver"
NAME                                 READY   STATUS    RESTARTS   AGE
ebs-csi-controller-5cbfd45dc-2fq9q   6/6     Running   0          102s
ebs-csi-controller-5cbfd45dc-jgpl9   6/6     Running   0          102s
ebs-csi-node-2s8lj                   3/3     Running   0          101s
ebs-csi-node-4jstr                   3/3     Running   0          101s
ebs-csi-node-72w69                   3/3     Running   0          101s
ebs-csi-node-759rd                   0/3     Pending   0          101s
ebs-csi-node-cq86s                   3/3     Running   0          101s
ebs-csi-node-jnfxk                   0/3     Pending   0          101s
ebs-csi-node-m48nn                   3/3     Running   0          101s

OpenEBS性能测试

依赖说明

准备裸盘

1
2
3
4
5
6
7
root@ubuntu:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme2n1     259:2    0   50G  0 disk           ### 50G未格式化磁盘
nvme1n1     259:0    0  600G  0 disk
└─nvme1n1p1 259:3    0  600G  0 part /data
nvme0n1     259:1    0   40G  0 disk
└─nvme0n1p1 259:4    0   40G  0 part /

安装iscsi

1
2
3
sudo apt-get update
sudo apt-get install open-iscsi
sudo systemctl enable --now iscsid

FIO存储性能工具

FIO 介绍

fio 是一个常见的用于测试磁盘 I/O 性能的工具,支持 19 种不同的 I/O 引擎,包括:sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。fio 一直在更新,最新的版本是 v3.19,它的官网是 fio。

常用参数
常用参数参数说明参数取值(eg:)
nameFIO 运行任务的名称 (可选)name=fio-test
descriptionFIO 运行时的描述 (可选)description=“this is a test”
loopsFIO 是否要循环执行该任务 (可选)loops=5
numjobs每个FIO 任务要开启多少数量的线程numjobs=8
runtimeFIO 任务要执行的时间,单位为sruntime=300
time_based设置后,即便FIO写完了整个磁盘,也不会退出任务。当任务的时间满足runtime设置的时间后,才会退出任务time_based
startdelay延迟作业的启动时间。如果指定区间类型的数值,将从区间中选择一个随机值用来启动任务。单位为sstartdelay=10
ramp_timeFIO 在执行任务时预热的时间。可以使性能测试的结果更加精确可靠。单位为sramp_time=60
filename测试文件的名称,通常为硬盘的盘符名称filename=/dev/sdd
pre_read在FIO下发 I/O 前,文件会被加载到内存中。当 pre_read=true 时会清除掉磁盘中的元数据,默认为falsepre_read=false
max_open_zonesFIO 执行随机写入任务时,允许写入/读取的磁盘的区域的最大数量。max_open_zones=1000000
direct是否使用非缓冲I/O。默认为falsedirect=true
readwriteI/O 模式。read、write、randwrite、randread、randrw。混合读写时默认读写比例为50%:50%readwrite=read
percentage_random随机写入时包含多少的随机数据percentage_random=30%
blocksize读取/写入时块的大小bs=1M
zero_buffers初始化所有零的缓冲区。默认用随机数填充缓冲区zero_buffers
rwmixread混合模式中读取所占的百分比rwmixread=30
rwmixwrite混合模式中写入所占的百分比rwmixwrite=70
refill_buffersFIO 在每次提交时重新填充 I/O 缓冲区。使用 zero_buffers 参数后,该参数会失效refill_buffers
buffer_compress_percentage压缩 I/O 缓冲区的百分比,配合 refill_buffers 可以降低硬盘中相邻块中数据的一致性buffer_compress_percentage=70
sizeFIO 执行任务时要读取或写入的数据总和。size为百分比时将按照硬盘容量 * percentagesize=300G or size=50%
ioengineFIO 任务工具时的引擎,sync, libaio, rdma…ioengine=libaio
iodepth任务执行时的 I/O 队列深度的单元数。任务的线程数 = numjobs * iodepthiodepth=16

全网最全的云原生存储 OpenEBS 使用指南

简介

OpenEBS 是什么?

OpenEBS 是一种开源云原生存储解决方案,托管于 CNCF 基金会,目前该项目处于沙箱阶段。

OpenEBS 是一组存储引擎,允许您为有状态工作负载 (StatefulSet) 和 Kubernetes 平台类型选择正确的存储解决方案。在高层次上,OpenEBS 支持两大类卷——本地卷和复制卷。

OpenEBS 是 Kubernetes 本地超融合存储解决方案,它管理节点可用的本地存储,并为有状态工作负载提供本地或高可用的分布式持久卷。作为一个完全的 Kubernetes 原生解决方案的另一个优势是,管理员和开发人员可以使用 kubectl、Helm、 Prometheus、Grafana、Weave Scope 等 Kubernetes 可用的所有优秀工具来交互和管理 OpenEBS。

0%