您可以列出這是目前在集羣中啓用API組或者與api-versions
kubectl命令,或通過發送GET請求/apis
端點您kube-apiserver
的:
$ curl localhost:8080/apis
{
"paths": [
"/api",
"/api/v1",
"...",
"/apis/settings.k8s.io",
"/apis/settings.k8s.io/v1alpha1",
"...",
}
注意:在Kubernetes v1.6和v1.7上默認啓用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。
實施例:
apiVersion: kops/v1
kind: Cluster
metadata:
name: k8s.example.com
spec:
kubeAPIServer:
AdmissionControl:
- NamespaceLifecycle
- LimitRanger
- PodPreset
要更新現有的簇,執行以下步驟:
獲取與
kops get cluster name --full
複製kubeAPIServer規範塊完整的羣集配置從中。
不要推回完整配置。相反,編輯集羣配置與
kops edit cluster name
粘貼kubeAPIServer規範塊,添加缺少的位,並保存。
更新與
kops update cluster nane
羣集資源執行滾動更新應用更改:
kops rolling-update name
感謝。我只做了一個kops編輯羣集。該規範目前沒有針對kubeAPIServer的部分。用AdmissionControl.PodPreset添加一個安全嗎,還是應該顯式指定AdmissionControl在PodPreset中添加的所有當前設置?一旦添加,我想象一個kops更新羣集>滾動更新應該工作? – ashic
'kops的輸出是否獲得集羣$ NAME - 完整-o yaml'是否包含spec.kubeAPIServer?如果是的話,你可以在本地保存一份副本,更新它並執行'kops rolling-update'。 –
顯示我: kubeAPIServer: 地址:127.0.0.1 admissionControl: - NamespaceLifecycle - LimitRanger - ServiceAccount - PersistentVolumeLabel - DefaultStorageClass - DefaultTolerationSeconds - ResourceQuota 如果我在本地保存副本,並對其進行編輯,我如何將它應用到集羣? kops更新羣集不顯示這些選項。 – ashic