CKA [Installation] – Ubuntu 从0架设,架设Scheduler


Kubernetes当中的Scheduler的作用就是安排pod在哪个node部署, 然后就会告知apiserver ,接着apiserver就会让kubelet去部署。
1. 设置Certificate
cd /root/certificates
{
openssl genrsa -out kube-scheduler.key 2048
openssl req -new -key kube-scheduler.key -subj "/CN=system:kube-scheduler" -out kube-scheduler.csr
openssl x509 -req -in kube-scheduler.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out kube-scheduler.crt -days 1000
}
2. 创建scheduler 连接到apiserver的kubeconfig文件
{
kubectl config set-cluster kubernetes-from-scratch \
--certificate-authority=ca.crt \
--embed-certs=true \
--server=https://127.0.0.1:6443 \
--kubeconfig=kube-scheduler.kubeconfig
kubectl config set-credentials system:kube-scheduler \
--client-certificate=kube-scheduler.crt \
--client-key=kube-scheduler.key \
--embed-certs=true \
--kubeconfig=kube-scheduler.kubeconfig
kubectl config set-context default \
--cluster=kubernetes-from-scratch \
--user=system:kube-scheduler \
--kubeconfig=kube-scheduler.kubeconfig
kubectl config use-context default --kubeconfig=kube-scheduler.kubeconfig
}
3. 把scheduler的kubeconfig文件copy到kubernetes目录中
cp kube-scheduler.kubeconfig /var/lib/kubernetes/
4. 设置systemd service
cat <<EOF | sudo tee /etc/systemd/system/kube-scheduler.service
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
[Service]
ExecStart=/usr/local/bin/kube-scheduler \\
--kubeconfig=/var/lib/kubernetes/kube-scheduler.kubeconfig \\
--authentication-kubeconfig=/var/lib/kubernetes/kube-scheduler.kubeconfig \\
--authorization-kubeconfig=/var/lib/kubernetes/kube-scheduler.kubeconfig \\
--bind-address=127.0.0.1 \\
--leader-elect=true
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cp /root/binaries/kubernetes/server/bin/kube-scheduler /usr/local/bin
5. 检查scheduler的status
systemctl start kube-scheduler
systemctl status kube-scheduler
systemctl enable kube-scheduler

Facebook评论