我试图限制群集中每个节点的Pod数量。 我设法通过配置文件从kubeadm init中为每个节点添加了全局限制:
add_filter( 'template_include', 'portfolio_page_template', 99 );
function portfolio_page_template( $template ) {
global $wp;
$current_url_path = home_url( $wp->request );
$url_pattern = '/(^homes[\/\w]*)/gim'
if ( is_page() && preg_match($pattern, $current_url_path)) {
$new_template = locate_template( array( 'home-page-template.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
return $template;
}
这不是很好,因为该限制甚至适用于主节点(正在运行多个kube系统吊舱,并且吊舱的数量可能会增加10个以上)。 我想将默认值保留在init上,并在每个节点上的join处更改该值。 我发现了一些东西:
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
networking:
podSubnet: <subnet>
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
maxPods: 10
但是,即使没有错误/警告出现,似乎maxPods的值也被忽略了。我可以为该特定节点创建10个以上的容器。
此外,apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
maxPods: 10
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: JoinConfiguration
discovery:
bootstrapToken:
apiServerEndpoint: "<api_endpoint>"
token: "<token>"
unsafeSkipCAVerification: true
kubectl get node <node> -o yaml
的默认值(110)。
我该如何进行操作才能使每个节点都应用此pod限制?
我想提一下,我具有与Kubernetes相关的基本知识/有限知识。
谢谢!
答案 0 :(得分:6)
在/var/lib/kubelet
处有一个config.yaml文件。当您运行kubeadm join时,此配置文件是从kube-system命名空间中的kubelet配置映射生成的。文件的部分内容如下。
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
anonymous:
enabled: false
webhook:
cacheTTL: 0s
enabled: true
x509:
clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
mode: Webhook
webhook:
cacheAuthorizedTTL: 0s
cacheUnauthorizedTTL: 0s
clusterDNS:
- 10.96.0.10
maxPods: 10
您可以更改该文件并添加maxPods参数,然后在节点上重新启动kubelet。
sudo systemctl restart kubelet
当前在kubeadm联接中无法传递kubelet配置文件。
答案 1 :(得分:1)
您还可以使用kubelet --max-pods
选项设置每个节点的最大Pod数量。