Addon-manager
附加组件管理器(Addon-manager)是运行在 Kubernetes 集群 Master 节点、用来管理附加组件(Addons)的服务。它管理着 $ADDON_PATH(默认是 /etc/kubernetes/addons/)目录中的所有扩展,保证它们始终运行在期望状态。
Addon-manager 支持两种标签
    对于带有 addonmanager.kubernetes.io/mode=Reconcile 标签的扩展,无法通过 API 来修改,即
      如果通过 API 修改了,则会自动回滚到 /etc/kubernetes/addons/ 中的配置
      如果通过 API 删除了,则会通过 /etc/kubernetes/addons/ 中的配置自动重新创建
      如果从 /etc/kubernetes/addons/ 中删除配置,则 Kubernetes 资源也会删除
      也就是说只能通过修改 /etc/kubernetes/addons/ 中的配置来修改
    对于带有 addonmanager.kubernetes.io/mode=EnsureExists 标签到扩展,仅检查扩展是否存在而不检查配置是否更改,即
      可以通过 API 来修改配置,不会自动回滚
      如果通过 API 删除了,则会通过 /etc/kubernetes/addons/ 中的配置自动重新创建
      如果从 /etc/kubernetes/addons/ 中删除配置,则 Kubernetes 资源不会删除

部署方法

将下面的 YAML 存入所有 Master 节点的 /etc/kubernetes/manifests/kube-addon-manager.yaml 文件中:
1
apiVersion: v1
2
kind: Pod
3
metadata:
4
name: kube-addon-manager
5
namespace: kube-system
6
annotations:
7
scheduler.alpha.kubernetes.io/critical-pod: ''
8
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
9
labels:
10
component: kube-addon-manager
11
spec:
12
hostNetwork: true
13
containers:
14
- name: kube-addon-manager
15
# When updating version also bump it in:
16
# - test/kubemark/resources/manifests/kube-addon-manager.yaml
17
image: k8s.gcr.io/kube-addon-manager:v8.7
18
command:
19
- /bin/bash
20
- -c
21
- exec /opt/kube-addons.sh 1>>/var/log/kube-addon-manager.log 2>&1
22
resources:
23
requests:
24
cpu: 3m
25
memory: 50Mi
26
volumeMounts:
27
- mountPath: /etc/kubernetes/
28
name: addons
29
readOnly: true
30
- mountPath: /var/log
31
name: varlog
32
readOnly: false
33
env:
34
- name: KUBECTL_EXTRA_PRUNE_WHITELIST
35
value: {{kubectl_extra_prune_whitelist}}
36
volumes:
37
- hostPath:
38
path: /etc/kubernetes/
39
name: addons
40
- hostPath:
41
path: /var/log
42
name: varlog
Copied!

源码

最近更新 2yr ago
复制链接