环境 OCP 3.4
测试场景 1. 各个 Node 节点没有设置特别的 label
1.1 确认 Node 节点配置没有设置特别的 label
oc get node --show-labels
输出如下:
NAME STATUS AGE LABELS
master.example.com Ready,SchedulingDisabled 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=master.example.com
node1.example.com Ready 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node1.example.com
node2.example.com Ready 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node2.example.com
1.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 有时会运行在同一个 node 上,有时会运行在 2 个 node 上。
oc get pod -o wide | grep myphp
1.3 手工把 pod 数量降为 0,再升到 1,再升到 2
oc scale --replicas=0 dc/myphp
oc scale --replicas=1 dc/myphp
oc scale --replicas=2 dc/myphp
多试验几次,发现 2 个 pod 有时会运行在同一个 node 上,有时会运行在 2 个 node 上。
这说明,默认情况下 pod 选择运行的 node 是随机的。
1.4 清理应用
oc delete is/myphp bc/myphp dc/myphp svc/myphp routes/myphp
测试场景 2. 对 Node 节点设置特别的 label:region
2.1 对 Node 节点设置 label:region
oc label node node1.example.com region=r1 --overwrite
oc label node node2.example.com region=r2 --overwrite
2.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 只会运行在 region label 值相同的 node 值 上。
这说明 region 默认是亲和性的,一旦第 1 个 pod 运行在某一个 node(region=r1) 上,scale up 的 pod 也会运行在该 node(region=r1) 上。
2.3 手工把 pod 数量降为 0,再升到 1,再升到 2
多试验几次,发现 2 个 pod 只会运行在 region label 值相同的 node 值 上。
2.4 清理应用
测试场景 3. 对 Node 节点设置特别的 label:zone
3.1 对 Node 节点设置 label:zone
oc label node node1.example.com region-
oc label node node2.example.com region-
oc label node node1.example.com zone=z1 --overwrite
oc label node node2.example.com zone=z2 --overwrite
3.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 会运行在 zone label 值不同的 node 上。
这说明 zone 默认是反亲和性的,多个 pod 会运行在 zone label 值不同的 node 上。
// TODO 实际测试结果不是这样,需要再分析原因。
3.3 手工把 pod 数量降为 0,再升到 1,再升到 2
多试验几次,发现 2 个 pod 会运行在 zone label 值不同的 node 上。
// TODO 实际测试结果不是这样,需要再分析原因。
3.4 清理应用
测试场景 1. 各个 Node 节点没有设置特别的 label
1.1 确认 Node 节点配置没有设置特别的 label
oc get node --show-labels
输出如下:
NAME STATUS AGE LABELS
master.example.com Ready,SchedulingDisabled 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=master.example.com
node1.example.com Ready 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node1.example.com
node2.example.com Ready 78d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=node2.example.com
1.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 有时会运行在同一个 node 上,有时会运行在 2 个 node 上。
oc get pod -o wide | grep myphp
1.3 手工把 pod 数量降为 0,再升到 1,再升到 2
oc scale --replicas=0 dc/myphp
oc scale --replicas=1 dc/myphp
oc scale --replicas=2 dc/myphp
多试验几次,发现 2 个 pod 有时会运行在同一个 node 上,有时会运行在 2 个 node 上。
这说明,默认情况下 pod 选择运行的 node 是随机的。
1.4 清理应用
oc delete is/myphp bc/myphp dc/myphp svc/myphp routes/myphp
测试场景 2. 对 Node 节点设置特别的 label:region
2.1 对 Node 节点设置 label:region
oc label node node1.example.com region=r1 --overwrite
oc label node node2.example.com region=r2 --overwrite
2.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 只会运行在 region label 值相同的 node 值 上。
这说明 region 默认是亲和性的,一旦第 1 个 pod 运行在某一个 node(region=r1) 上,scale up 的 pod 也会运行在该 node(region=r1) 上。
2.3 手工把 pod 数量降为 0,再升到 1,再升到 2
多试验几次,发现 2 个 pod 只会运行在 region label 值相同的 node 值 上。
2.4 清理应用
测试场景 3. 对 Node 节点设置特别的 label:zone
3.1 对 Node 节点设置 label:zone
oc label node node1.example.com region-
oc label node node2.example.com region-
oc label node node1.example.com zone=z1 --overwrite
oc label node node2.example.com zone=z2 --overwrite
3.2 部署 myphp 应用,Replicas=2
多试验几次,发现 2 个 pod 会运行在 zone label 值不同的 node 上。
这说明 zone 默认是反亲和性的,多个 pod 会运行在 zone label 值不同的 node 上。
// TODO 实际测试结果不是这样,需要再分析原因。
3.3 手工把 pod 数量降为 0,再升到 1,再升到 2
多试验几次,发现 2 个 pod 会运行在 zone label 值不同的 node 上。
// TODO 实际测试结果不是这样,需要再分析原因。
没有评论:
发表评论