kube-controller-manager多久会把一个pod从一个shutdown节点迁移到另一个health节点
How long will kube-controller-manager migrate one pod from a shutdown node to another health node
我的/etc/kubernetes/config如下:
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOG_LEVEL="--v=5"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://127.0.0.1:8080 --log-dir=/var/log/kubernetes --stderrthreshold=1"
/etc/kubernetes/controller-manager 像这样:"
KUBE_CONTROLLER_MANAGER_ARGS="--port=10252 --node-monitor-grace-period=10s --pod-eviction-timeout=10s --cluster-name=op-k8s"
我创建了一个部署:"dep1",它只有一个 pod,这个 pod 部署在一个健康节点中:"test1",然后在 test1 exec 中:
systemctl stop kubelet.service ;systemctl stop kube-proxy.service ;systemctl stop docker
制作"node shutdown error"。大约 30 秒前节点:test1 变为 NotReady 状态(kubectl get node
in kubemaster machine)。但五分钟后部署:dep1 的 pod 转移到另一个节点。
所以我有两个问题:
- 如何控制一个节点关闭该节点中的pod转移到另一个健康节点的时间?
2.-pod-eviction-timeout=10s,这个参数好像没什么用,因为kubelet down了没人能删除那个pod。
谢谢!
不是--node-monitor-grace-period=10s --pod-eviction-timeout=10s
没用,关键是"controller-manager"没加载那些参数!
我使用命令 /bin/systemctl restart kube-controller-manager.service
启动 kube-controller-manager,cat "/usr/lib/systemd/system/kube-controller-manager.service" 如下:
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/controller-manager
User=root
ExecStart=/usr/bin/kube-controller-manager --port=10252 --master=http://127.0.0.1:8080
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
cat /etc/kubernetes/controller-manager 如下:
###
# The following values are used to configure the kubernetes controller-manager
# defaults from config and apiserver should be adequate
# Add your own!
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --node-monitor-period=5s --pod-eviction-timeout=5m0s"
如果我在 /usr/lib/systemd/system/kube-controller-manager.service 中添加这些参数,例如:
ExecStart=/usr/bin/kube-controller-manager --port=10252 --master=http://127.0.0.1:8080 --node-monitor-grace-period=10s --node-monitor-period=5s --pod-eviction-timeout=10s
工作顺利!
所以我不知道为什么controller-manager没有加载配置文件/etc/kubernetes/controller-manager.
我的/etc/kubernetes/config如下:
KUBE_LOGTOSTDERR="--logtostderr=false"
KUBE_LOG_LEVEL="--v=5"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://127.0.0.1:8080 --log-dir=/var/log/kubernetes --stderrthreshold=1"
/etc/kubernetes/controller-manager 像这样:"
KUBE_CONTROLLER_MANAGER_ARGS="--port=10252 --node-monitor-grace-period=10s --pod-eviction-timeout=10s --cluster-name=op-k8s"
我创建了一个部署:"dep1",它只有一个 pod,这个 pod 部署在一个健康节点中:"test1",然后在 test1 exec 中:
systemctl stop kubelet.service ;systemctl stop kube-proxy.service ;systemctl stop docker
制作"node shutdown error"。大约 30 秒前节点:test1 变为 NotReady 状态(kubectl get node
in kubemaster machine)。但五分钟后部署:dep1 的 pod 转移到另一个节点。
所以我有两个问题:
- 如何控制一个节点关闭该节点中的pod转移到另一个健康节点的时间?
2.-pod-eviction-timeout=10s,这个参数好像没什么用,因为kubelet down了没人能删除那个pod。 谢谢!
不是--node-monitor-grace-period=10s --pod-eviction-timeout=10s
没用,关键是"controller-manager"没加载那些参数!
我使用命令 /bin/systemctl restart kube-controller-manager.service
启动 kube-controller-manager,cat "/usr/lib/systemd/system/kube-controller-manager.service" 如下:
[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
[Service]
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/controller-manager
User=root
ExecStart=/usr/bin/kube-controller-manager --port=10252 --master=http://127.0.0.1:8080
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
cat /etc/kubernetes/controller-manager 如下:
###
# The following values are used to configure the kubernetes controller-manager
# defaults from config and apiserver should be adequate
# Add your own!
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --node-monitor-period=5s --pod-eviction-timeout=5m0s"
如果我在 /usr/lib/systemd/system/kube-controller-manager.service 中添加这些参数,例如:
ExecStart=/usr/bin/kube-controller-manager --port=10252 --master=http://127.0.0.1:8080 --node-monitor-grace-period=10s --node-monitor-period=5s --pod-eviction-timeout=10s
工作顺利! 所以我不知道为什么controller-manager没有加载配置文件/etc/kubernetes/controller-manager.