使用 kops 启用 Kubernetes PodPresets
Enabling Kubernetes PodPresets with kops
我有一个 kubernetes 集群,它使用 1.5 的 kops 设置,然后升级到 1.6.2。我正在尝试使用 PodPresets。文档规定了以下要求:
- You have enabled the api type settings.k8s.io/v1alpha1/podpreset
- You have enabled the admission controller PodPreset
- You have defined your pod presets
我看到 1.6.x 第一个被处理了(我如何验证?)。我该如何应用第二个?我可以看到集群中有三个 kube-apiserver-* pods 运行 (我想它是针对 3 个 azs 的)。我想我可以从 kubernetes 仪表板编辑他们的 yaml 配置,并将 PodPreset 添加到准入控制字符串。但是有没有更好的方法来实现这一点?
您可以使用 api-versions
kubectl 命令或通过向您的 /apis
端点发送 GET 请求来列出集群中当前启用的 API 组=18=]:
$ curl localhost:8080/apis
{
"paths": [
"/api",
"/api/v1",
"...",
"/apis/settings.k8s.io",
"/apis/settings.k8s.io/v1alpha1",
"...",
}
Note: The settings.k8s.io/v1alpha1
API is enabled by default on Kubernetes v1.6 and v1.7 but will be disabled by default in v1.8.
您可以使用 kops ClusterSpec 在集群配置期间自定义 Kubernetes 组件的配置,包括 API 服务器。
这在文档页面 Using A Manifest to Manage kops Clusters, and the full spec for the KubeAPIServerConfig type is available in the kops GoDoc 上有描述。
示例:
apiVersion: kops/v1
kind: Cluster
metadata:
name: k8s.example.com
spec:
kubeAPIServer:
AdmissionControl:
- NamespaceLifecycle
- LimitRanger
- PodPreset
要更新现有集群,请执行以下步骤:
使用
获取完整的集群配置
kops get cluster name --full
从中复制 kubeAPIServer spec 块。
不要推回完整配置。相反,使用
编辑集群配置
kops edit cluster name
粘贴 kubeAPI服务器规范块,添加缺少的位,然后保存。
更新集群资源
kops update cluster nane
执行滚动更新以应用更改:
kops rolling-update name
我有一个 kubernetes 集群,它使用 1.5 的 kops 设置,然后升级到 1.6.2。我正在尝试使用 PodPresets。文档规定了以下要求:
- You have enabled the api type settings.k8s.io/v1alpha1/podpreset
- You have enabled the admission controller PodPreset
- You have defined your pod presets
我看到 1.6.x 第一个被处理了(我如何验证?)。我该如何应用第二个?我可以看到集群中有三个 kube-apiserver-* pods 运行 (我想它是针对 3 个 azs 的)。我想我可以从 kubernetes 仪表板编辑他们的 yaml 配置,并将 PodPreset 添加到准入控制字符串。但是有没有更好的方法来实现这一点?
您可以使用 api-versions
kubectl 命令或通过向您的 /apis
端点发送 GET 请求来列出集群中当前启用的 API 组=18=]:
$ curl localhost:8080/apis
{
"paths": [
"/api",
"/api/v1",
"...",
"/apis/settings.k8s.io",
"/apis/settings.k8s.io/v1alpha1",
"...",
}
Note: The
settings.k8s.io/v1alpha1
API is enabled by default on Kubernetes v1.6 and v1.7 but will be disabled by default in v1.8.
您可以使用 kops ClusterSpec 在集群配置期间自定义 Kubernetes 组件的配置,包括 API 服务器。
这在文档页面 Using A Manifest to Manage kops Clusters, and the full spec for the KubeAPIServerConfig type is available in the kops GoDoc 上有描述。
示例:
apiVersion: kops/v1
kind: Cluster
metadata:
name: k8s.example.com
spec:
kubeAPIServer:
AdmissionControl:
- NamespaceLifecycle
- LimitRanger
- PodPreset
要更新现有集群,请执行以下步骤:
使用
获取完整的集群配置kops get cluster name --full
从中复制 kubeAPIServer spec 块。
不要推回完整配置。相反,使用
编辑集群配置kops edit cluster name
粘贴 kubeAPI服务器规范块,添加缺少的位,然后保存。
更新集群资源
kops update cluster nane
执行滚动更新以应用更改:
kops rolling-update name