2019 年 10 月手记

Kubernetes

etcd 运维文档

https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/maintenance.md

etcd 压测

不断写入同一个 key,产生大量 revision。
可以通过 compact 和 defrag 解决。

1
2
3
4
while [ 1 ]; do
dd if=/dev/urandom bs=1024 count=1024 | ETCDCTL_API=3 ./etcdctl --endpoints=https://10.0.2.15:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key put /test || break
done

写入不同的 key。
通过删除 key 解决。

1
2
3
for j in {1..10}; do
dd if=/dev/urandom bs=1024 count=1024 | ETCDCTL_API=3 ./etcdctl --endpoints=https://10.0.2.15:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key put /test/key/${j} || break
done
Read more

2019 年 8 月手记

Kubernetes

object GroupVersionKind is empty

问题

从 client-go (无论是从 server 还是 cache)获取到的 object 的 TypeMeta 为空

1
2
3
pod := podLister.Pods(namespace).Get(name)
gvk := pod.GetObjectKind().GroupVersionKind()
fmt.Printf("%#v\n", gvk)
1
GroupVersionKind{Group:"", Version:"", Kind:""}

(kubernetes 1.14)

Read more

从零开始实现一个 terraform plugin

terraform 作为一个优秀的开源基础设施管理、构建工具,官方或第三方提供了很多 plugin 来对接各种云平台(IaaS)。然而在我们平时开发和测试过程中,需要使用内部的 IaaS 服务频繁创建和删除 VM,而目前人工操作的方式比较费时费力,且没有现成的 plugin 可以使用。为了更方便地利用 terraform 工具来对内部 IaaS 资源进行管理和操作,我们决定自己开发一个 terraform plugin。

Read more

云平台之 SaaS 随想

原文地址:http://88250.b3log.org/saas-essay

SaaS 平台

以应用为中心

“平台”本来就比较泛,再加上“SaaS”的话就更飘渺了。

我们先从一个简单的场景来看:

  1. 开发者开发应用后在市场上线
  2. 用户购买应用使用
  3. 开发者通过市场反馈调整运维,为后续版本计划提供依据
  4. 新版本上线,用户升级使用

这是以应用为中心的一个闭环(市场-开发-运维-市场),实现了应用的整个生命周期,我们可以把平台看成是这个场景的支撑,场景中的所有活动都是在平台上完成的,整个场景就是一个 SaaS 生态系统。

Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×