kubectl-cilium

module
v0.0.0-...-733628c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: Apache-2.0

README

kubectl-cilium

A kubectl plugin for interacting with Cilium.

Installation

kubectl-cilium can be installed by running

$ go get github.com/timoreimann/kubectl-cilium/cmd/kubectl-cilium

or by cloning this repository, running

$ make build

and copying ./bin/kubectl-cilium to a directory in your $PATH.

Examples

kubectl-cilium exec

The exec command allows you to execute a command on a Cilium agent targeted by either a node or pod name.

For example, assuming that your Kubernetes cluster has nodes

$ kubectl get node                                                                                                                                            
NAME                               STATUS   ROLES    AGE   VERSION                                                                                      
kind-cilium-mesh-2-control-plane   Ready    master   87m   v1.18.0                                                                           
kind-cilium-mesh-2-worker          Ready    <none>   86m   v1.18.0                                                    
kind-cilium-mesh-2-worker2         Ready    <none>   86m   v1.18.0

and pods

$ kubectl get pod --all-namespaces
NAMESPACE            NAME                                                       READY   STATUS        RESTARTS   AGE   IP            NODE
kube-system          cilium-8dzvt                                               1/1     Running       0          86m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          cilium-8lmlb                                               1/1     Running       0          86m   172.17.0.5    kind-cilium-mesh-2-worker       
kube-system          cilium-etcd-2pphwr5jhg                                     1/1     Running       0          88m   10.20.2.12    kind-cilium-mesh-2-worker       
kube-system          cilium-etcd-operator-59b4987745-n94pb                      1/1     Running       0          90m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          cilium-jcs44                                               1/1     Running       0          86m   172.17.0.6    kind-cilium-mesh-2-worker2      
kube-system          cilium-operator-77dd4b8544-vb2kf                           1/1     Running       0          86m   172.17.0.5    kind-cilium-mesh-2-worker       
kube-system          coredns-5644d7b6d9-fhmff                                   1/1     Running       0          81m   10.20.2.62    kind-cilium-mesh-2-worker       
kube-system          coredns-5644d7b6d9-x9ksr                                   1/1     Running       0          81m   10.20.0.68    kind-cilium-mesh-2-control-plane
kube-system          etcd-kind-cilium-mesh-2-control-plane                      1/1     Running       0          90m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          etcd-operator-59cf4cfb7c-4snqh                             1/1     Running       0          81m   10.20.2.109   kind-cilium-mesh-2-worker       
kube-system          kube-apiserver-kind-cilium-mesh-2-control-plane            1/1     Running       0          90m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          kube-controller-manager-kind-cilium-mesh-2-control-plane   1/1     Running       0          90m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          kube-proxy-tk2xm                                           1/1     Running       0          90m   172.17.0.5    kind-cilium-mesh-2-worker       
kube-system          kube-proxy-wwl2g                                           1/1     Running       0          90m   172.17.0.6    kind-cilium-mesh-2-worker2      
kube-system          kube-proxy-zrz4z                                           1/1     Running       0          91m   172.17.0.7    kind-cilium-mesh-2-control-plane
kube-system          kube-scheduler-kind-cilium-mesh-2-control-plane            1/1     Running       0          90m   172.17.0.7    kind-cilium-mesh-2-control-plane
local-path-storage   local-path-provisioner-7745554f7f-9mmr8                    1/1     Running       1          91m   10.20.0.114   kind-cilium-mesh-2-control-plane

running

$ kubectl-cilium exec -n local-path-storage local-path-provisioner-7745554f7f-9mmr8 cilium monitor

will start monitoring all Cilium-managed traffic in node kind-cilium-mesh-2-control-plane:

$ kubectl-cilium exec -n local-path-storage local-path-provisioner-7745554f7f-9mmr8 cilium monitor
Listening for events on 4 CPUs with 64x4096 of shared memory
Press Ctrl-C to quit
level=info msg="Initializing dissection cache..." subsys=monitor
-> overlay flow 0x883a3a1b identity 4->0 state new ifindex cilium_vxlan orig-ip 0.0.0.0: 10.20.0.234:4240 -> 10.20.2.90:59456 tcp ACK
-> endpoint 1534 flow 0xef026664 identity 6->4 state established ifindex lxc_health orig-ip 10.20.2.90: 10.20.2.90:59456 -> 10.20.0.234:4240 tcp ACK
-> endpoint 1980 flow 0xb0e8433f identity 1->104 state new ifindex lxcb42c26c3bbf8 orig-ip 10.20.0.122: 10.20.0.122:47168 -> 10.20.0.68:8181 tcp SYN
-> host from flow 0x4a33a3f3 identity 104->1 state reply ifindex cilium_net orig-ip 0.0.0.0: 10.20.0.68:8181 -> 10.20.0.122:47168 tcp SYN, ACK
(...)

If no command is specified, /bin/bash is used by default:

$ kubectl-cilium exec -n local-path-storage local-path-provisioner-7745554f7f-9mmr8
root@kind-cilium-mesh-2-control-plane:~#

License

See the LICENCE file.

Directories

Path Synopsis
cmd
internal
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL