kubeadm 部署 Kubernetes 集群最关键的两个步骤,kubeadm init 和
kubeadm join。相信你一定会有这样的疑问:kubeadm 确实简单易用,可是我又该如何
定制我的集群组件参数呢?
比如,我要指定 kube-apiserver 的启动参数,该怎么办?
在这里,我强烈推荐你在使用 kubeadm init 部署 Master 节点时,使用下面这条指令:

1 $ kubeadm init --config kubeadm.yaml

这时,你就可以给 kubeadm 提供一个 YAML 文件(比如,kubeadm.yaml),它的内容
如下所示(我仅列举了主要部分):

1 apiVersion: kubeadm.k8s.io/v1alpha2
2 kind: MasterConfiguration
3 kubernetesVersion: v1.11.0
4 api:
5 advertiseAddress: 192.168.0.102
6 bindPort: 6443
7 ...
8 etcd:
9 local:
10 dataDir: /var/lib/etcd
11 image: ""
12 imageRepository: k8s.gcr.io
13 kubeProxy:
14 config:
15 bindAddress: 0.0.0.0
16 ...
17 kubeletConfiguration:
18 baseConfig:
19 address: 0.0.0.0
20 ...
21 networking:
22 dnsDomain: cluster.local
23 podSubnet: ""
24 serviceSubnet: 10.96.0.0/12
25 nodeRegistration:
26 criSocket: /var/run/dockershim.sock
27 ...

通过制定这样一个部署参数配置文件,你就可以很方便地在这个文件里填写各种自定义的部署参数了。比如,我现在要指定 kube-apiserver 的参数,那么我只要在这个文件里加上这
样一段信息:

1 ...
2 apiServerExtraArgs:
3 advertise-address: 192.168.0.103
4 anonymous-auth: false
5 enable-admission-plugins: AlwaysPullImages,DefaultStorageClass
6 audit-log-path: /home/johndoe/audit.log

然后,kubeadm 就会使用上面这些信息替换 /etc/kubernetes/manifests/kubeapiserver.yaml 里的 command 字段里的参数了。而这个 YAML 文件提供的可配置项远不止这些。比如,你还可以修改 kubelet 和 kubeproxy 的配置,修改 Kubernetes 使用的基础镜像的 URL(默认的k8s.gcr.io/xxx镜像
URL 在国内访问是有困难的),指定自己的证书文件,指定特殊的容器运行时等等。这些
配置项

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐