Kubernets binary installation (10) of the master node deployment Deployment Services kube-scheduler The scheduler

Kubernetes Scheduler is a rich strategy, topology awareness, workload specific functions, scheduler significantly affect the availability, performance and capacity. The scheduler resource requirements need to be considered individually and collectively, quality of service requirements, hardware / software / policy constraints, affinity and anti-affinity specifications, data locality, between the load disturbance, deadlines and so on. Will be exposed through the API workloads specific requirements necessary.

kube-scheduler is one of Kube-Master 3-related services (ApiServer, Controller Manager, Scheduler), there is a state service, modify the status of the cluster.

If the relevant services on multiple master nodes at the same time to take effect, there will be synchronized with consistency, so much master node kube-scheduler service can only be a relation of master and slave, kukubernetes using lock lease (lease-lock) realization leader elections, specific to kube-scheduler, set the startup parameters "--leader-elect = true".

Cluster Programming

CPU name Character IP addresses
mfyxw30.mfyxw.com kube-scheduler 192.168.80.30
mfyxw40.mfyxw.com kube-scheduler 192.168.80.40

1. Create a startup script kube-scheduler

Creating kube-scheduler startup script on the host mfyxw30.mfyxw.com

[root@mfyxw30 ~]# cat > /opt/kubernetes/server/bin/kube-scheduler.sh << EOF
#!/bin/sh
./kube-scheduler \\
  --leader-elect  \\
  --log-dir /data/logs/kubernetes/kube-scheduler \\
  --master http://127.0.0.1:8080 \\
  --v 2
EOF

1586014621134

Creating kube-scheduler startup script on the host mfyxw40.mfyxw.com

[root@mfyxw40 ~]# cat > /opt/kubernetes/server/bin/kube-scheduler.sh << EOF
#!/bin/sh
./kube-scheduler \\
  --leader-elect  \\
  --log-dir /data/logs/kubernetes/kube-scheduler \\
  --master http://127.0.0.1:8080 \\
  --v 2
EOF

1586014633292

2. Adjust the file permissions, create a directory

Kube-scheduler.sh adjust file permissions on mfyxw30.mfyxw.com host, create the directory / data / logs / kubernetes / kube-scheduler

[root@mfyxw30 ~]# chmod +x /opt/kubernetes/server/bin/kube-scheduler.sh
[root@mfyxw30 ~]# mkdir -p /data/logs/kubernetes/kube-scheduler

1586014846485

Kube-scheduler.sh adjust file permissions on mfyxw40.mfyxw.com host, create the directory / data / logs / kubernetes / kube-scheduler

[root@mfyxw40 ~]# chmod +x /opt/kubernetes/server/bin/kube-scheduler.sh
[root@mfyxw40 ~]# mkdir -p /data/logs/kubernetes/kube-scheduler

1586014835373

3. Create a supervisor profile for kube-scheduler

On mfyxw30.mfyxw.com host, create a profile for supervisor kube-scheduler

[root@mfyxw30 ~]# cat > /etc/supervisord.d/kube-scheduler.ini << EOF
[program:kube-scheduler-80-30]
command=/opt/kubernetes/server/bin/kube-scheduler.sh                     ; the program (relative uses PATH, can take args)
numprocs=1                                                               ; number of processes copies to start (def 1)
directory=/opt/kubernetes/server/bin                                     ; directory to cwd to before exec (def no cwd)
autostart=true                                                           ; start at supervisord start (default: true)
autorestart=true                                                         ; retstart at unexpected quit (default: true)
startsecs=22                                                             ; number of secs prog must stay running (def. 1)
startretries=3                                                           ; max # of serial start failures (default 3)
exitcodes=0,2                                                            ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT                                                          ; signal used to kill process (default TERM)
stopwaitsecs=10                                                          ; max num secs to wait b4 SIGKILL (default 10)
user=root                                                                ; setuid to this UNIX account to run the program
redirect_stderr=false                                                    ; redirect proc stderr to stdout (default false)
stdout_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stdout.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=64MB                                             ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=4                                                 ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB                                              ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false                                              ; emit events on stdout writes (default false)
stderr_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stderr.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=64MB                                             ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=4                                                 ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB                                              ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false                                              ; emit events on stderr writes (default false)
EOF

1586015075836

On mfyxw40.mfyxw.com host, create a profile for supervisor kube-scheduler

[root@mfyxw40 ~]# cat > /etc/supervisord.d/kube-scheduler.ini << EOF
[program:kube-scheduler-80-40]
command=/opt/kubernetes/server/bin/kube-scheduler.sh                     ; the program (relative uses PATH, can take args)
numprocs=1                                                               ; number of processes copies to start (def 1)
directory=/opt/kubernetes/server/bin                                     ; directory to cwd to before exec (def no cwd)
autostart=true                                                           ; start at supervisord start (default: true)
autorestart=true                                                         ; retstart at unexpected quit (default: true)
startsecs=22                                                             ; number of secs prog must stay running (def. 1)
startretries=3                                                           ; max # of serial start failures (default 3)
exitcodes=0,2                                                            ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT                                                          ; signal used to kill process (default TERM)
stopwaitsecs=10                                                          ; max num secs to wait b4 SIGKILL (default 10)
user=root                                                                ; setuid to this UNIX account to run the program
redirect_stderr=false                                                    ; redirect proc stderr to stdout (default false)
stdout_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stdout.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=64MB                                             ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=4                                                 ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB                                              ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false                                              ; emit events on stdout writes (default false)
stderr_logfile=/data/logs/kubernetes/kube-scheduler/scheduler.stderr.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=64MB                                             ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=4                                                 ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB                                              ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false                                              ; emit events on stderr writes (default false)
EOF

1586015097296

4. Start and inspection services

Start kube-scheduler service on the host and check mfyxw30.mfyxw.com

[root@mfyxw30 ~]# supervisorctl update
[root@mfyxw30 ~]# supervisorctl status

1586015252765

Start kube-scheduler service on the host and check mfyxw40.mfyxw.com

[root@mfyxw40 ~]# supervisorctl update
[root@mfyxw40 ~]# supervisorctl status

1586015244443

5. Create a link for kubectl and view cluster health

Create a link for kubectl on mfyxw30.mfyxw.com host and view cluster health

[root@mfyxw30 ~]# ln -s /opt/kubernetes/server/bin/kubectl /usr/bin/kubectl
[root@mfyxw30 ~]# kubectl get cs

1586015443090

Create a link for kubectl on mfyxw40.mfyxw.com host and view cluster health

[root@mfyxw40 ~]# ln -s /opt/kubernetes/server/bin/kubectl /usr/bin/kubectl
[root@mfyxw40 ~]# kubectl get cs

1586015453400

Guess you like

Origin www.cnblogs.com/Heroge/p/12635499.html