0. 本地调试
k8s
各组件之间的交互需要用到加密通信,如果简单配置各组件的启动参数,相互之间无法正常通信。本节将介绍如何在配置进而可以在本地进行debug
k8s集群。
0.1 本地运行调试
k8s
有个文件hack/local-up-cluster.sh
用于起一个本地k8s
集群,而该脚本生成的证书等同样可以用于idea
debug时使用。这里进行了以下修改:将执行组件的命令,转换成输出命令参数echo
命令见附件^1。
0.2 远程debug
还有一种方式则是在另一台机器上运行一个k8s
集群,通过dlv
来远程debug
,可以参考此篇: 搭建k8s的开发调试环境
附件
[^1]: 本地生成密钥以及组件命令参数
1 | !/usr/bin/env bash |
1 | go build apiserver.go --authorization-mode=Node,RBAC --cloud-provider= --cloud-config= --v=3 --vmodule= --audit-policy-file=/tmp/kube-audit-policy-file --audit-log-path=/tmp/kube-apiserver-audit.log --authorization-webhook-config-file= --authentication-token-webhook-config-file= --cert-dir=/var/run/kubernetes --client-ca-file=/var/run/kubernetes/client-ca.crt --kubelet-client-certificate=/var/run/kubernetes/client-kube-apiserver.crt --kubelet-client-key=/var/run/kubernetes/client-kube-apiserver.key --service-account-key-file=/tmp/kube-serviceaccount.key --service-account-lookup=true --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,Priority,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota --disable-admission-plugins= --admission-control-config-file= --bind-address=0.0.0.0 --secure-port=6443 --tls-cert-file=/var/run/kubernetes/serving-kube-apiserver.crt --tls-private-key-file=/var/run/kubernetes/serving-kube-apiserver.key --insecure-bind-address=127.0.0.1 --insecure-port=8080 --storage-backend=etcd3 --storage-media-type= --etcd-servers=http://127.0.0.1:2379 --service-cluster-ip-range=10.0.0.0/24 --feature-gates=AllAlpha=false --external-hostname=localhost --requestheader-username-headers=X-Remote-User --requestheader-group-headers=X-Remote-Group --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-client-ca-file=/var/run/kubernetes/request-header-ca.crt --requestheader-allowed-names=system:auth-proxy --proxy-client-cert-file=/var/run/kubernetes/client-auth-proxy.crt --proxy-client-key-file=/var/run/kubernetes/client-auth-proxy.key --cors-allowed-origins=/127.0.0.1(:[0-9]+)?$,/localhost(:[0-9]+)?$ >/tmp/kube-apiserver.log 2>&1 & |