使用kops启用Kubernetes PodPresets

时间:2017-07-02 15:31:07

标签: kubernetes kops

我有一个kubernetes集群,其中设置了1.5的kops,然后升级到1.6.2。我试图使用PodPresets。文档陈述了以下要求:

  
      
  1. 您已启用api类型settings.k8s.io/v1alpha1/podpreset
  2.   
  3. 您已启用许可控制器PodPreset
  4.   
  5. 您已定义了播客预设
  6.   

我看到1.6.x的情况,第一个是照顾(我该如何验证?)。我怎么能申请第二个?我可以看到群集中有三个kube-apiserver- * pod(我想象它是3个az)。我想我可以从kubernetes仪表板编辑他们的yaml配置,并将PodPreset添加到permit-control字符串中。但有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以使用api-versions kubectl命令列出群集中当前启用的API组,也可以向/apis的{​​{1}}端点发送GET请求:< / p>

kube-apiserver
  

注意:Kubernetes v1.6和v1.7默认启用了$ curl localhost:8080/apis { "paths": [ "/api", "/api/v1", "...", "/apis/settings.k8s.io", "/apis/settings.k8s.io/v1alpha1", "...", } API,但disabled by default in v1.8

您可以使用kops ClusterSpec在群集配置期间自定义Kubernetes组件的配置,包括API服务器。

文档页面Using A Manifest to Manage kops Clusters对此进行了描述,并提供了KubeAPIServerConfig类型的完整规范in the kops GoDoc

示例:

settings.k8s.io/v1alpha1

要更新现有群集,请执行以下步骤:

  1. 使用

    获取完整的群集配置
    apiVersion: kops/v1
    kind: Cluster
    metadata:
      name: k8s.example.com
    spec:
      kubeAPIServer:
        AdmissionControl:
          - NamespaceLifecycle
          - LimitRanger
          - PodPreset
    
  2. 从中复制kubeAPIServer规范块。

  3. 不要推回完整配置。而是使用

    编辑群集配置
    kops get cluster name --full
    
  4. 粘贴kubeAPIServer规范块,添加缺失的位并保存。

  5. 使用

    更新群集资源
    kops edit cluster name
    
  6. 执行滚动更新以应用更改:

    kops update cluster nane