谁启动kube-apiserver以及如何配置其启动参数?

时间:2020-06-09 11:42:32

标签: kubernetes

在我的kubeadm init创建的配置中,kube-apiserver由containerd.service启动,如何检查containerd.service的配置以及如何知道如何启动kube-apiserver?

ytong@controller-4135505:~$ systemctl status containerd.service
● containerd.service - containerd container runtime
   Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-06-09 04:34:04 GMT+7; 3min 24s ago
     Docs: https://containerd.io
  Process: 5135 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 5138 (containerd)
    Tasks: 228
   CGroup: /system.slice/containerd.service
           ├─5138 /usr/bin/containerd
           ├─5821 etcd --advertise-client-urls=https://10.169.97.0:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --initial-advertise-
           ├─5847 kube-scheduler --authentication-kubeconfig=/etc/kubernetes/scheduler.conf --authorization-kubeconfig=/etc/kubernetes/scheduler.conf --bind-address=127.0.0.1 --kubeconfig=/
         * ├─5868 kube-apiserver --advertise-address=10.169.97.0 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugin
           └─7587 kube-controller-manager --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf --authorization-kubeconfig=/etc/kubernetes/controller-manager.conf --bind-addre```
And it is not controlled by kubelet.service right since I restart kubelet.service will not restart kube-apiserver daemon.

The only configuration file found by me for containerd.service is for /lib/systemd/system/containerd.service, but it only tell the execStart is /usr/bin/containerd.

The /usr/bin/containerd is a binary and all clues are ended here for me to find how it can find kube-apiserver to start.

Or does containerd has some path to hold its configuration files?

1 个答案:

答案 0 :(得分:2)

/etc/kubernetes/manifests/kube-apiserver.yaml的Yaml以static pod的形式启动Kube API服务器。您可以编辑yaml以添加或删除启动参数。 Kubelet知道要在该路径中查找任何yaml,如果有任何yaml,kubelet会将容器创建委托给containerd。因此,容器化对Kubernetes API Server没有任何直接了解。对于容器化的Kubernetes API服务器来说,这只是要启动的另一个容器。

https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/#constants-and-well-known-values-and-paths