本文介绍: 看 Readme.md 中有介绍,该库是 K8s 官方提供的与。

例子演示

编写 kubectlfoo拷贝至 /usr/local/bin/

#!/bin/bash

# 可选的参数处理
if [[ "$1" == "version" ]]
then
    echo "1.0.0"
    exit 0
fi

# 可选的参数处理
if [[ "$1" == "config" ]]
then
    echo $KUBECONFIG
    exit 0
fi

echo "I am a plugin named kubectl-foo"

验证

fananchong@myubuntu:~$ export KUBECONFIG=~/.kube/config
fananchong@myubuntu:~$ kubectl foo
I am a plugin named kubectl-foo
fananchong@myubuntu:~$ kubectl foo config
/home/fananchong/.kube/config

官方文档https://kubernetes.io/zh-cn/docs/tasks/extend-kubectl/kubectl-plugins/

samplecliplugin

官方 Github 库也提供了例子https://github.com/kubernetes/sample-cli-plugin

例子主要演示了:

例子主要想表述的还是可以使用 k8s.io/client-go 库,并按 kubectl 插件方式,来扩展 kubectl 的功能

k8s.io/clientgo

该库是 K8s 官方提供的与kube-apiserver交互客户端

Github代码镜像https://github.com/kubernetes/client-go

看 Readme.md 中有介绍不同的 K8s 版本,有对应client-go 版本开发时不能用错

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注