目录
摘要:
获取k8s的etcd的crd的方式:
一. 部署在和etcd相同的node上,通过hostpath拿到
二. 从pod内通过client-go从etcd的pod内将crd复制到本pod
方案抉择:
执行过程:
反思:
一. 由于对底层的api不了解,浪费了大量时间
二. 需要对底层具体的某些接口和模块做刻意练习
摘要:
记录关于获取k8s的etcd的crd策略的反思
获取k8s的etcd的crd的方式:
一. 部署在和etcd相同的node上,通过hostpath拿到
二. 从pod内通过client-go从etcd的pod内将crd复制到本pod
方案抉择:
执行过程:
- 首先从直觉上觉得从pod里把etcd的crd复制出来是应该选择的
- 在做的时候, 发现遇到了重重阻力,主要是无法利用client-go复制出pod内的文件
- 搜了一堆资料, 找到了client-go-helper, 提供了该方法
- 但是在编译client-go-helper的时候, 发现使用的k8s的github地址已经不复存在
- 然后放弃了该做法, 浪费了一下午时间
- 回过头使用直接部署在etcd的node上的做法
反思:
一. 由于对底层的api不了解,浪费了大量时间
- k8s的api
- client-go的接口
- 在具体使用的时候, 才去学习, 浪费了大量时间
二. 需要对底层具体的某些接口和模块做刻意练习
ng client libraries are officially maintained by Kubernetes SIG API Machinery.
Language | Client Library | Sample Programs |
dotnet | github.com/kubernetes-client/csharp | browse |
Go | github.com/kubernetes/client-go/ | browse |
Haskell | github.com/kubernetes-client/haskell | browse |
Java | github.com/kubernetes-client/java | browse |
JavaScript | github.com/kubernetes-client/javascript | browse |
Python | github.com/kubernetes-client/python/ | browse |
The following Kubernetes API client libraries are provided and maintained by their authors, not the Kubernetes team.
Language | Client Library |
Clojure | github.com/yanatan16/clj-kubernetes-api |
DotNet | github.com/tonnyeremin/kubernetes_gen |
DotNet (RestSharp) | github.com/masroorhasan/Kubernetes.DotNet |
Elixir | github.com/obmarg/kazan |
Elixir | github.com/coryodaniel/k8s |
Go | github.com/ericchiang/k8s |
Java (OSGi) | bitbucket.org/amdatulabs/amdatu-kubernetes |
Java (Fabric8, OSGi) | github.com/fabric8io/kubernetes-client |
Java | github.com/manusa/yakc |
Lisp | github.com/brendandburns/cl-k8s |
Lisp | github.com/xh4/cube |
Node.js (TypeScript) | github.com/Goyoo/node-k8s-client |
Node.js | github.com/ajpauwels/easy-k8s |
Node.js | github.com/godaddy/kubernetes-client |
Node.js | github.com/tenxcloud/node-kubernetes-client |
Perl | metacpan.org/pod/Net::Kubernetes |
PHP | github.com/allansun/kubernetes-php-client |
PHP | github.com/maclof/kubernetes-client |
PHP | github.com/travisghansen/kubernetes-client-php |
PHP | github.com/renoki-co/php-k8s |
Python | github.com/fiaas/k8s |
Python | github.com/gtsystem/lightkube |
Python | github.com/mnubo/kubernetes-py |
Python | github.com/tomplus/kubernetes_asyncio |
Python | github.com/Frankkkkk/pykorm |
Ruby | github.com/abonas/kubeclient |
Ruby | github.com/k8s-ruby/k8s-ruby |
Ruby | github.com/kontena/k8s-client |
Rust | github.com/clux/kube-rs |
Rust | github.com/ynqa/kubernetes-rust |
Scala | github.com/hagay3/skuber |
Scala | github.com/joan38/kubernetes-client |
Swift | github.com/swiftkube/client |