mirror of
https://github.com/nclabteam/THPA.git
synced 2025-02-12 10:31:54 +00:00
123 lines
2.9 KiB
YAML
123 lines
2.9 KiB
YAML
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: my-scheduler
|
|
namespace: kube-system
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: my-scheduler-cluster-admin
|
|
namespace: kube-system
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: cluster-admin
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
namespace: kube-system
|
|
name: my-scheduler
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: my-scheduler-config
|
|
namespace: kube-system
|
|
data:
|
|
config.yaml: |
|
|
apiVersion: kubescheduler.config.k8s.io/v1alpha1
|
|
kind: KubeSchedulerConfiguration
|
|
schedulerName: my-scheduler
|
|
algorithmSource:
|
|
policy:
|
|
configMap:
|
|
namespace: kube-system
|
|
name: my-scheduler-policy
|
|
leaderElection:
|
|
leaderElect: true
|
|
lockObjectName: my-scheduler
|
|
lockObjectNamespace: kube-system
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: my-scheduler-policy
|
|
namespace: kube-system
|
|
data:
|
|
policy.cfg : |
|
|
{
|
|
"kind" : "Policy",
|
|
"apiVersion" : "v1",
|
|
"predicates" : [
|
|
{"name" : "PodFitsHostPorts"},
|
|
{"name" : "PodFitsResources"},
|
|
{"name" : "NoDiskConflict"},
|
|
{"name" : "MatchNodeSelector"},
|
|
{"name" : "HostName"}
|
|
],
|
|
"priorities" : [
|
|
{"name" : "LeastRequestedPriority", "weight" : 1},
|
|
{"name" : "BalancedResourceAllocation", "weight" : 1},
|
|
{"name" : "ServiceSpreadingPriority", "weight" : 1},
|
|
{"name" : "EqualPriority", "weight" : 1}
|
|
],
|
|
"extenders" : [{
|
|
"urlPrefix": "http://localhost/scheduler",
|
|
"filterVerb": "predicates/always_true",
|
|
"prioritizeVerb": "priorities/zero_score",
|
|
"preemptVerb": "preemption",
|
|
"bindVerb": "",
|
|
"weight": 1,
|
|
"enableHttps": false,
|
|
"nodeCacheCapable": false
|
|
}],
|
|
"hardPodAffinitySymmetricWeight" : 10
|
|
}
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: my-scheduler
|
|
namespace: kube-system
|
|
labels:
|
|
app: my-scheduler
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: my-scheduler
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: my-scheduler
|
|
spec:
|
|
serviceAccountName: my-scheduler
|
|
volumes:
|
|
- name: my-scheduler-config
|
|
configMap:
|
|
name: my-scheduler-config
|
|
containers:
|
|
- name: my-scheduler-ctr
|
|
image: gcr.io/google_containers/hyperkube:v1.16.3
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- kube-scheduler
|
|
- --config=/my-scheduler/config.yaml
|
|
- -v=4
|
|
volumeMounts:
|
|
- name: my-scheduler-config
|
|
mountPath: /my-scheduler
|
|
- name: my-scheduler-extender-ctr
|
|
image: crome98/kube-phuclh:v1
|
|
imagePullPolicy: Always
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /version
|
|
port: 80
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /version
|
|
port: 80
|
|
ports:
|
|
- containerPort: 80
|
|
|