Kubernetes 扩展kubelet
kubelet-cilium
#https://github.com/ishantanu/awesome-kubectl-plugins
#kublet-cilium
#https://github.com/bmcustodio/kubectl-cilium
#下载
https://github.com/bmcustodio/kubectl-cilium/releases/download/v0.1.2/kubectl-cilium_v0.1.2_linux_amd64.tar.gz
#
root@ubuntu-k8s-master01:~/software# tar zxvf kubectl-cilium_v0.1.2_linux_amd64.tar.gz
root@ubuntu-k8s-master01:~/software# mv kubectl-cilium /usr/local/bin/
root@ubuntu-k8s-master01:~/software# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ubuntu-k8s-master01 Ready control-plane 5d20h v1.28.2
ubuntu-k8s-node01 Ready <none> 5d20h v1.28.2
ubuntu-k8s-node02 Ready <none> 5d20h v1.28.2
#使用kubectl cilium 执行
root@ubuntu-k8s-master01:~/software# kubectl cilium exec ubuntu-k8s-node01 cilium status
KVStore: Ok Disabled
Kubernetes: Ok 1.29 (v1.29.2) [linux/amd64]
Kubernetes APIs: ["EndpointSliceOrEndpoint", "cilium/v2::CiliumClusterwideEnvoyConfig", "cilium/v2::CiliumClusterwideNetworkPolicy", "cilium/v2::CiliumEndpoint", "cilium/v2::CiliumEnvoyConfig", "cilium/v2::CiliumNetworkPolicy", "cilium/v2::CiliumNode", "cilium/v2alpha1::CiliumCIDRGroup", "core/v1::Namespace", "core/v1::Pods", "core/v1::Secrets", "core/v1::Service", "networking.k8s.io/v1::NetworkPolicy"]
KubeProxyReplacement: Strict [ens33 192.168.40.133 fe80::20c:29ff:fea1:ddc5 (Direct Routing)]
Host firewall: Disabled
SRv6: Disabled
CNI Chaining: none
Cilium: Ok 1.15.0 (v1.15.0-2db45c46)
NodeMonitor: Listening for events on 128 CPUs with 64x4096 of shared memory
Cilium health daemon: Ok
IPAM: IPv4: 5/254 allocated from 10.244.1.0/24,
IPv4 BIG TCP: Disabled
IPv6 BIG TCP: Disabled
BandwidthManager: Disabled
Host Routing: Legacy
Masquerading: IPTables [IPv4: Enabled, IPv6: Disabled]
Controller Status: 31/31 healthy
Proxy Status: OK, ip 10.244.1.229, 0 redirects active on ports 10000-20000, Envoy: embedded
Global Identity Range: min 256, max 65535
Hubble: Ok Current/Max Flows: 2966/4095 (72.43%), Flows/s: 11.68 Metrics: Disabled
Encryption: Disabled
Cluster health: 3/3 reachable (2024-03-06T01:59:57Z)
Modules Health: Stopped(0) Degraded(0) OK(11) Unknown(3)
#列出所有已经安装的插件
root@ubuntu-k8s-master01:~/software# kubectl plugin list
Unable to read directory "/snap/bin" from your PATH: open /snap/bin: no such file or directory. Skipping...
The following compatible plugins are available:
/usr/local/bin/kubectl-cilium
使用Krew管理-kubectl插件
#Krew是由Kubernetes SIG CLI社区维护的插件管理器,常用于发现和安装kubecd插件
#Krew自身也是kubectl的插件之一
#https://github.com/kubernetes-sigs/krew/releases
#下载
#https://github.com/kubernetes-sigs/krew/releases/download/v0.4.4/krew-linux_amd64.tar.gz
root@ubuntu-k8s-master01:~/software# tar zxvf krew-linux_amd64.tar.gz
root@ubuntu-k8s-master01:~/software# mv krew-linux_amd64 /usr/local/bin/kubectl-krew
root@ubuntu-k8s-master01:~/software# kubectl krew --help
krew is the kubectl plugin manager.
You can invoke krew through kubectl: "kubectl krew [command]..."
Usage:
kubectl krew [command]
Available Commands:
help Help about any command
index Manage custom plugin indexes
info Show information about an available plugin
install Install kubectl plugins
list List installed kubectl plugins
search Discover kubectl plugins
uninstall Uninstall plugins
update Update the local copy of the plugin index
upgrade Upgrade installed plugins to newer versions
version Show krew version and diagnostics
Flags:
-h, --help help for krew
-v, --v Level number for the log level verbosity
Use "kubectl krew [command] --help" for more information about a command.
#
root@ubuntu-k8s-master01:~/software# kubectl krew search cilium
#使用krew来安装插件 但是服务无法代理
root@ubuntu-k8s-master01:~/software# kubectl krew install tree
使用kubelet-tree :列出资源
#https://github.com/ahmetb/kubectl-tree/releases/download/v0.4.3/kubectl-tree_v0.4.3_linux_amd64.tar.gz
root@ubuntu-k8s-master01:~/software# tar zxvf kubectl-tree_v0.4.3_linux_amd64.tar.gz
root@ubuntu-k8s-master01:~/software# mv kubectl-tree /usr/local/bin/kubectl-tree
root@ubuntu-k8s-master01:~/software# kubectl create deployment demoapp-cilium --image=ikubernetes/demoapp:v1.0 --replicas=3
root@ubuntu-k8s-master01:~/software# kubectl get deploy
root@ubuntu-k8s-master01:~/software# kubectl tree deployment demoapp-cilium
W0306 02:13:48.361222 3093 warnings.go:70] metallb.io v1beta1 AddressPool is deprecated, consider using IPAddressPool
NAMESPACE NAME READY REASON AGE
default Deployment/demoapp-cilium - 13s
default └─ReplicaSet/demoapp-cilium-65c55ccffb - 13s
default ├─Pod/demoapp-cilium-65c55ccffb-288mg True 13s
default │ └─CiliumEndpoint/demoapp-cilium-65c55ccffb-288mg - 13s
default ├─Pod/demoapp-cilium-65c55ccffb-fgwn6 True 13s
default │ └─CiliumEndpoint/demoapp-cilium-65c55ccffb-fgwn6 - 13s
default └─Pod/demoapp-cilium-65c55ccffb-shnmd True 13s
default └─CiliumEndpoint/demoapp-cilium-65c55ccffb-shnmd - 12s