我有一个kubernetes集群,其中设置了kops 1.5,然后升级到1.6.2.我正在尝试使用PodPresets.文档声明了以下要求:
- 您已启用api类型settings.k8s.io/v1alpha1/podpreset
- 您已启用准入控制器PodPreset
- 您已定义了pod预设
我看到1.6.x,第一个是照顾(我怎么验证?).我怎么能申请第二个?我可以看到群集中有三个kube-apiserver-*pod(我想它是3个az).我想我可以从kubernetes仪表板编辑他们的yaml配置,并将PodPreset添加到permit-control字符串中.但有没有更好的方法来实现这一目标?
您可以使用api-versionskubectl命令列出当前在群集中启用的API组,或者通过向/apis您的端点发送GET请求kube-apiserver:
$ curl localhost:8080/apis
{
"paths": [
"/api",
"/api/v1",
"...",
"/apis/settings.k8s.io",
"/apis/settings.k8s.io/v1alpha1",
"...",
}
Run Code Online (Sandbox Code Playgroud)
注意:
settings.k8s.io/v1alpha1默认情况下,在Kubernetes v1.6和v1.7上启用API,但在v1.8中默认禁用.
您可以使用kops ClusterSpec在群集配置期间自定义Kubernetes组件的配置,包括API服务器.
这在文档页面上使用Manifest来管理kops Clusters进行了描述,KopsAPIServerConfig类型的完整规范在kops GoDoc中提供.
例:
apiVersion: kops/v1
kind: Cluster
metadata:
name: k8s.example.com
spec:
kubeAPIServer:
AdmissionControl:
- NamespaceLifecycle
- LimitRanger
- PodPreset
Run Code Online (Sandbox Code Playgroud)
要更新现有群集,请执行以下步骤:
获取完整的群集配置
kops get cluster name --full
Run Code Online (Sandbox Code Playgroud)从中复制kubeAPIServer规范块.
不要推回完整配置.而是使用编辑群集配置
kops edit cluster name
Run Code Online (Sandbox Code Playgroud)粘贴kubeAPIServer规范块,添加缺少的位,然后保存.
使用更新群集资源
kops update cluster nane
Run Code Online (Sandbox Code Playgroud)执行滚动更新以应用更改:
kops rolling-update name
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |