在上一篇文章里我们主要介绍master组件kube-controller-manager的安装,这里我们主要介绍安装另外一个master组件kube-scheduler,这里我们采用下载二进制binary制作linux systemd的方式安装。这个组件也在下载的kubenetes包里(1.15.1版本),在以前文章里已经下载过,这里就不再重复。另外kube-scheduler与kube-apiserver交互我们开启ssl,所以请提前制作好相关ssl证书(可以参考以前文章里制作docker的证书),并copy到配置目录里。
copy二进制文件:
cp /opt/sw/kubernetes/install/kubernetes/server/bin/kube-scheduler /usr/bin/
whereis kube-scheduler
创建配置目录:
mkdir -p /etc/kubernetes/kube-scheduler
touch /etc/kubernetes/kube-scheduler/k8s-kube-scheduler.conf
创建配置文件:
kube-scheduler需要和kube-apiserver交互,这个交互可以利用kubeconfig文件做为配置文件。所以与kube-controller-manager一样,我们可以利用在kubectl安装文章中我们创建的kubeconfig文件。
cat > /etc/kubernetes/kube-scheduler/k8s-kube-scheduler.conf<<EOF
IN_SECURE_ACCESS="--address=127.0.0.1 --port=10251"
KUBE_CONFIG_FILE="--kubeconfig=/etc/kubernetes/kubeconfig/config"
EOF
source /etc/kubernetes/kube-scheduler/k8s-kube-scheduler.conf
创建systemd unit文件:
touch /usr/lib/systemd/system/kube-scheduler.service
cat > /usr/lib/systemd/system/kube-scheduler.service<<EOF
[Unit]
Description=Kubernetes Scheduler Service
After=network.target network-online.target kube-apiserver.service
Wants=network-online.target kube-apiserver.service
[Service]
Type=simple
EnvironmentFile=-/etc/kubernetes/kube-scheduler/k8s-kube-scheduler.conf
ExecStartPre=-source /etc/kubernetes/kube-scheduler/k8s-kube-scheduler.conf
ExecStart=/usr/bin/kube-scheduler \
${IN_SECURE_ACCESS} \
${KUBE_CONFIG_FILE}
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
cat /usr/lib/systemd/system/kube-scheduler.service
reload服务并设置开机启动:
systemctl daemon-reload
systemctl enable kube-scheduler
启动服务并检查状态:
systemctl start kube-scheduler
systemctl status kube-scheduler