Kubernetes 快速部署方法

安装 Docker

https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker

国内加速替换软件源

http://mirrors.ustc.edu.cn/

1
2
3
4
5
6
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -

sudo add-apt-repository \
"deb [arch=amd64] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"

安装 kubeadm

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

Read more

2020 年 2 月手记

Kubernetes

deletion timestamp

如果 Pod 的 DeletionGracePeriodSecondsTerminationGracePeriodSeconds 同时存在时,哪个生效?

kubelet 代码DeletionGracePeriodSeconds 的优先级高。

2020 年 1 月手记

Read more

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

Kubelet PLEG 源码解析

PLEG (pod lifecycle event generator) 是 kubelet 中一个非常重要的模块,它主要完成以下几个目标:

  1. 从 runtime 中获取 pod 当前状态,产生 pod lifecycle events
  2. 从 runtime 中获取 pod 当前状态,更新 kubelet pod cache

本文我们通过分析 PLEG 模块的源码,来加深对 Kubernetes 的理解,也可以加速在使用过程对一些疑难问题的排查和处理,同时后期可以对一些问题源码进行优化,来解决一些 Kubernetes 本身的坑。

Read more
Your browser is out-of-date!

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

×