Scheduling (5%) [调度 占比 5%].
kubernetes.io > Documentation > Reference > kubectl CLI > kubectl Cheat Sheet
kubernetes.io > Documentation > Concepts > Configuration > Managing Compute Resources for Containers
kubernetes.io > Documentation > Concepts > Workload > Controllers > DaemonSets
kubernetes.io > Documentation > Concepts > Configuration > Assigning Pod to Nodes
kubernetes.io > Documentation > Concepts > Configuration > Taints and Tolerations
kubernetes.io > Documentation > Tasks > Administer a Cluster > Configure Multiple Schedulers
kubernetes.io > Documentation > Tasks > Administer a Cluster > Manage Memory, CPU, and API Resources > Configure Default Memory Requests and Limits for a Namespace
kubernetes.io > Documentation > Tasks > Administer a Cluster > Static Pods > Static Pods
kubernetes.io > Documentation > Reference > Command line tools reference > kube-scheduler
Use label selectors to schedule Pods [使用 Selector 来调度 Pod]
|
|
Understand the role of DaemonSets [理解 DaemonSets 的角色]
YAML
|
|
|
|
|
|
Understand how resource limits can affect Pod Scheduling [了解资源限制如何影响 Pod 调度]
|
|
|
|
Understand how to run multiple schedulers and how to configure Pods to use them [了解如何运行多个调度程序,以及如何配置 Pods 来使用它们]
show
apiVersion: v1
kind: Pod
metadata:
name: my-custom-scheduler
namespace: kube-system
spec:
containers:
- command:
- kube-scheduler
- --address=127.0.0.1
- kubeconfig=/etc/kubernetes/scheduler.conf
- --lock-object0name=my-custom-scheduler
image: k8s.gcr.io/kube-scheduler-amd64:v1.11.3
name: kube-scheduler
apiVersion: v1
kind: Pod
metadta:
name: my-custom-scheduled-pod
spec:
containers:
- image nginx
name: nginx
schedulerName: my-custom-scheduled
Manually schedule a Pod without a scheduler [在诶呦调度程序的情况下手动调度 Pod]
show
# 将 `Pod YAML` 文件存储在 /etc/kubernetes/manifest 中
# 创建一个名为 `static-bosybox` 的 StaticPod, 它使用 busybox 镜像和 sleep 1000 命令.
$ kubectl run --restart=Never --image=busybox static-busybox --dry-run \
-o yaml --command -- sleep 1000 > /etc/kubernetes/manifests/static-busybox.yaml
# 如果要求您从特定的节点删除 StaticPod, 那么运行
$ kubectl get nodes -o wide
# 来获得节点 IP, 然后 ssh 到它.
# kubelet 配置文件可能在 `/var/lib/kubelet/config.yaml`.
# 检查 `StaticPodPath:` 然后转到该目录删除 YAML 文件.
Display scheduler events
show
$ kubectl get events
$ kubectl get events --watch
$ kubectl logs kube-scheduler-bk8s-node0 -n kube-system
/var/log/kube-scheduler.log on the control/master node (if schedule is standalone service)
Know how to configure the Kubernetes scheduler [了解如何配置 Kubernetes 调度程序]
show
$ wget "https://storage.goolgeapis.com/kubernetes-release/release/v1.12.0/bin/linux/amd64/kube-scheduler"
$ chmod +x kube-scheduler
$ sudo mv kube-scheduler /usr/local/bin
$ sudo mv kube-scheduler.kubeconfig /var/lib/kubernetes/
$ cat << EOS | sudo tee /etc/kubernetes/config/kube-scheduler.yaml
apiVersion: componentconfig/v1alpha1
kind:KubeSchedulerConfiguration
clientConnection:
kubeconfig: "/var/lib/kubernetes/kube-scheduler.kubeconfig"
leaderElection:
leaderElect: true
EOF
$ 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 \\
--config=/etc/kubernetes/config/kube-scheduler.yaml \\
--v=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl enable kube-scheduler
$ sudo systemctl start kube-scheduler