Skip to content

Instantly share code, notes, and snippets.

@jayunit100
Last active August 6, 2020 12:08
Show Gist options
  • Save jayunit100/694d18fdd03837ee98d592af9c170e9a to your computer and use it in GitHub Desktop.
Save jayunit100/694d18fdd03837ee98d592af9c170e9a to your computer and use it in GitHub Desktop.
hacking metrics into kubeadm
10226 # 1) import components-base into the kubeadm package
10227 # 2) add a few metrics as is done in vi pkg/kubelet/metrics/metrics.go
10228 # 3) run "make kubeadm"
10229 # 4) run "kubeadm init" on your mac
10230 # 5) like this .//_output/local/go/bin/kubeadm init
diff --git a/cmd/kubeadm/app/kubeadm.go b/cmd/kubeadm/app/kubeadm.go
index 1842cfd8cb4..0ab66a1cadb 100644
--- a/cmd/kubeadm/app/kubeadm.go
+++ b/cmd/kubeadm/app/kubeadm.go
@@ -26,6 +26,24 @@ import (
cliflag "k8s.io/component-base/cli/flag"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd"
+
+ "k8s.io/component-base/metrics"
+// "k8s.io/component-base/metrics/legacyregistry"
+
+)
+
+
+var (
+ // NodeName is a Gauge that tracks the ode's name. The count is always 1.
+ _ = metrics.NewGaugeVec(
+ &metrics.GaugeOpts{
+ Subsystem: "kubeadm",
+ Name: "a",
+ Help: "The node's name. The count is always 1.",
+ StabilityLevel: "1",
+ },
+ []string{"a"},
+ )
)
// Run creates and executes new kubeadm command
@mattfenwick
Copy link

mattfenwick commented Apr 1, 2020

Notes to self:

Run on mac:

git clone [email protected]:kubernetes/kubernetes

cd kubernetes

make kubeadm

sudo ./_output/local/go/bin/kubeadm init --v=5 --ignore-preflight-errors=KubeletVersion,SystemVerification

If following the kind setup instructions:

git clone [email protected]:kubernetes/kubernetes $(go env GOPATH)/src/k8s.io/kubernetes

cd $(go env GOPATH)/src/k8s.io/kubernetes

Following these instructions To create a cluster from Kubernetes source:

brew install gnu-tar 

kind build node-image

kind create cluster --image kindest/node:latest

Kind hacking

Run from a version of kubernetes other than master:

cd ~/path/to/kubernetes
git checkout --track remotes/origin/release-1.17

kind build node-image --image=k8s:1.17 
kind -v 10 create cluster --image k8s:1.17

docker inspect kind-control-plane

kind get nodes

Look at what's going on inside the control plane:

docker exec -ti kind-control-plane bash

# the rest of these commands are run from inside the docker container!

journalctl -flu kubelet

more /etc/kubernetes/manifests/etcd.yaml

crictl ps

more /kind/manifests/default-cni.yaml
more /kind/manifests/default-storage.yaml

# don't run these next two unless you know what you're doing!  this will blow away your previous credentials
# kubeadm reset -f
# kubeadm init --config /kind/kubeadm.conf

more /etc/kubernetes/admin.conf

ls /var/log/containers/

Look at what's going on in Docker:

docker ps
docker images

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment