89 lines
2.9 KiB
Bash
89 lines
2.9 KiB
Bash
|
#!/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
|