3.2.4. 정책 구성 샘플
아래 구성에서는 스케줄러 정책 파일을 사용하여 지정한 것처럼 기본 스케줄러 구성을 지정합니다.
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "RegionZoneAffinity",
"argument": {
"serviceAffinity": {
"labels": ["region, zone"]
}
}
}
],
"priorities": [
{
"name":"RackSpread",
"weight" : 1,
"argument": {
"serviceAntiAffinity": {
"label": "rack"
}
}
}
]
}
아래의 모든 샘플 구성에서 서술자 및 우선순위 함수 목록은 지정된 사용 사례와 관련된 항목만 포함하도록 잘립니다. 실제로 완료된/유의미한 스케줄러 정책에는 위에 나열된 기본 서술자 및 우선순위 전부는 아니더라도 대부분이 포함되어야 합니다.
다음 예제에서는 세 가지 토폴로지 수준, 즉 region(유사성)
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "RegionZoneAffinity",
"argument": {
"serviceAffinity": {
"labels": ["region, zone"]
}
}
}
],
"priorities": [
{
"name":"RackSpread",
"weight" : 1,
"argument": {
"serviceAntiAffinity": {
"label": "rack"
}
}
}
]
}
다음 예제에서는 세 가지 토폴로지 수준, 즉 city(유사성) building(유사성 방지) room(유사성 방지)을 정의합니다.
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "CityAffinity",
"argument": {
"serviceAffinity": {
"label": "city"
}
}
}
],
"priorities": [
{
"name":"BuildingSpread",
"weight" : 1,
"argument": {
"serviceAntiAffinity": {
"label": "building"
}
}
},
{
"name":"RoomSpread",
"weight" : 1,
"argument": {
"serviceAntiAffinity": {
"label": "room"
}
}
}
]
}
다음 예제에서는 'region' 라벨이 정의된 노드만 사용하고 'zone' 라벨이 정의된 노드를 선호하는 정책을 정의합니다.
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "RequireRegion",
"argument": {
"labelPreference": {
"labels": ["region"],
"presence": true
}
}
}
],
"priorities": [
{
"name":"ZonePreferred",
"weight" : 1,
"argument": {
"labelPreference": {
"label": "zone",
"presence": true
}
}
}
]
}
다음 예제에서는 정적 및 구성 가능 서술자와 우선순위를 둘 다 결합합니다.
{
"kind": "Policy",
"apiVersion": "v1",
"predicates": [
{
"name": "RegionAffinity",
"argument": {
"serviceAffinity": {
"labels": ["region"]
}
}
},
{
"name": "RequireRegion",
"argument": {
"labelsPresence": {
"labels": ["region"],
"presence": true
}
}
},
{
"name": "BuildingNodesAvoid",
"argument": {
"labelsPresence": {
"label": "building",
"presence": false
}
}
},
{"name" : "PodFitsPorts"},
{"name" : "MatchNodeSelector"}
],
"priorities": [
{
"name": "ZoneSpread",
"weight" : 2,
"argument": {
"serviceAntiAffinity":{
"label": "zone"
}
}
},
{
"name":"ZonePreferred",
"weight" : 1,
"argument": {
"labelPreference":{
"label": "zone",
"presence": true
}
}
},
{"name" : "ServiceSpreadingPriority", "weight" : 1}
]
}