Kubernetes 节点访问限制 电脑版发表于:2022/6/28 15:05 ![Kubernetes](https://img.tnblog.net/arcimg/hb/274ef6f115de4c9b8e40ded5deb2f4c2.jpg "Kubernetes") >#Kubernetes 节点访问限制 [TOC] tn2>有时候可能会有这样的需求限制,我们知道通过设置变量`KUBECONFIG`指定访问k8s集群时需要的config文件来访问集群资源。 ```bash export KUBECONFIG=/etc/kubernetes/kubelet.conf kubectl get node ``` ![](https://img.tnblog.net/arcimg/hb/276c1492250e44a5afcc9d5b0376ef93.png) tn2>但是通过这样的方式,只要其他工作节点或者子节点同样有conf文件也会对集群中的资源进行操作。举例: ```bash ssh node01 export KUBECONFIG=/etc/kubernetes/kubelet.conf kubectl label node controlplane killercoda/one=123 kubectl label node node01 node-restriction.kubernetes.io/one=123 ``` ![](https://img.tnblog.net/arcimg/hb/93e3784137084fab8ef7cc2562399ec0.png) tn2>所以我们可以修改apiserver的配置来进行限制,添加下面的一行来启动节点限制。 ```bash vim /etc/kubernetes/manifests/kube-apiserver.yaml ``` ```yaml - --enable-admission-plugins=NodeRestriction ``` ![](https://img.tnblog.net/arcimg/hb/0cd06f775b524cdca54299bb327534f3.png) tn2>然后我们可以启动该命令查看apiserver的重启情况。 ```yaml watch crictl ps # 如果不是用的cri,也可以使用下面的命令 kubectl get pod -n kube-system -w ``` tn2>启动完成之后我们可以再次尝试,我们发现它被受到限制。 ```yaml ssh node01 export KUBECONFIG=/etc/kubernetes/kubelet.conf kubectl label node controlplane killercoda/two=123 # restricted kubectl label node node01 node-restriction.kubernetes.io/two=123 # restricted kubectl label node node01 test/two=123 # works # 但是仍然是可以查看的 k get node ``` ![](https://img.tnblog.net/arcimg/hb/2bc5e302800b4f038ffab80aee8324c1.png)