k8x/systemd/install_kube_scheduler.sh
2024-05-18 04:45:52 +03:00

89 lines
2.9 KiB
Bash
Executable file

#!/bin/bash
echo ""
echo "... ] INSTALLING KUBE SCHEDULER [ ..."
HOME=$( cd "$(dirname "$0")" && pwd )
source $HOME/../config
systemctl stop kube-scheduler
gzip -v -c -d $HOME/../blobs/kube-scheduler.gz > /usr/local/bin/kube-scheduler
chmod +x /usr/local/bin/kube-scheduler
#generate kube-scheduler's kubeconfig
rm ${CONF_DIR}/kube-scheduler/kubeconfig
TOKEN=`cat ${CA_DIR}/kube-scheduler.token`
kubectl config set-cluster ${CLUSTER_NAME}.virtual.local --certificate-authority=${CA_DIR}/ca.crt --embed-certs=true --server=https://${NODE_IP}:6443 --kubeconfig=${CONF_DIR}/kube-scheduler/kubeconfig
kubectl config set-credentials system:kube-scheduler --client-certificate=${CA_DIR}/kube-scheduler.crt --client-key=${CA_DIR}/kube-scheduler.key --embed-certs=true --token=$TOKEN --kubeconfig=${CONF_DIR}/kube-scheduler/kubeconfig
kubectl config set-context ${CLUSTER_NAME}.virtual.local --cluster=${CLUSTER_NAME}.virtual.local --user=system:kube-scheduler --kubeconfig=${CONF_DIR}/kube-scheduler/kubeconfig
kubectl config use-context ${CLUSTER_NAME}.virtual.local --kubeconfig=${CONF_DIR}/kube-scheduler/kubeconfig
#generate kube-scheduler's config file
rm ${CONF_DIR}/kube-scheduler/kube-scheduler-config.yaml
cat << EOF | tee ${CONF_DIR}/kube-scheduler/kube-scheduler-config.yaml
apiVersion: kubescheduler.config.k8s.io/v1beta1
kind: KubeSchedulerConfiguration
clientConnection:
kubeconfig: "${CONF_DIR}/kube-scheduler/kubeconfig"
leaderElection:
leaderElect: true
EOF
#cat << EOF | tee ${CONF_DIR}/kube-scheduler/kube-scheduler-config.yaml
#algorithmSource:
# provider: DefaultProvider
#apiVersion: kubescheduler.config.k8s.io/v1alpha1
#bindTimeoutSeconds: 600
#clientConnection:
# acceptContentTypes: ""
# burst: 100
# contentType: application/vnd.kubernetes.protobuf
# kubeconfig: "${CONF_DIR}/kube-scheduler/kubeconfig"
# qps: 50
#disablePreemption: false
#enableContentionProfiling: false
#enableProfiling: false
#failureDomains: kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region
#hardPodAffinitySymmetricWeight: 1
#healthzBindAddress: 127.0.0.1:10251
#kind: KubeSchedulerConfiguration
#leaderElection:
# leaderElect: true
# leaseDuration: 15s
# lockObjectName: kube-scheduler
# lockObjectNamespace: kube-system
# renewDeadline: 10s
# resourceLock: endpoints
# retryPeriod: 2s
#metricsBindAddress: 127.0.0.1:10251
#percentageOfNodesToScore: 50
#schedulerName: default-scheduler
#EOF
# Setup systemd unit
cat <<EOF | tee /etc/systemd/system/kube-scheduler.service
[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
[Service]
User=root
ExecStart=/usr/local/bin/kube-scheduler \\
--config=${CONF_DIR}/kube-scheduler/kube-scheduler-config.yaml \\
--bind-address=${NODE_IP} \\
--secure-port=10259 \\
--logtostderr=true \\
--v=2
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable kube-scheduler
systemctl start kube-scheduler