云网牛站
所在位置:首页 > Linux云服务器 > 在Kubernetes控制平面(主)节点上调度Pods的方法

在Kubernetes控制平面(主)节点上调度Pods的方法

2020-01-11 09:12:48作者:叶云稿源:云网牛站

默认情况下,出于安全原因,您的Kubernetes集群不会在控制平面节点上调度Pods,建议您保持这种方式,但是对于测试环境,您可能希望在控制平面节点上调度Pods以最大程度地利用资源。

 

先决操作

如果您希望能够在Kubernetes控制平面节点上调度Pods,则需要在主节点上删除taint:

kubectl taint nodes --all node-role.kubernetes.io/master-

参考:安装及使用kubectl、kubectx和kubens轻松管理多个Kubernetes集群

输出将类似于:

node/k8smaster01.computingforgeeks.com untainted

taint "node-role.kubernetes.io/master" not found

taint "node-role.kubernetes.io/master" not found

taint "node-role.kubernetes.io/master" not found

这将从拥有该节点的任何节点(包括控制平面节点)中删除node-role.kubernetes.io/master taint,这意味着调度程序将能够在任何地方调度Pods。

 

在Kubernetes控制平面节点上测试Pods调度

我有一个包含三个工作程序节点和一个控制平面节点的群集:

$ kubectl get nodes

在Kubernetes控制平面(主)节点上调度Pods的方法

创建一个演示名称空间:

kubectl create namespace demo

将创建具有5个副本的部署:

$ vim nginx-deployment.yaml

它具有以下数据:

---

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx

namespace: demo

labels:

app: nginx

color: green

spec:

replicas: 5

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

color: green

spec:

containers:

- name: nginx

image: nginx:latest

imagePullPolicy: IfNotPresent

ports:

- name: http

protocol: TCP

containerPort: 80

resources:

limits:

cpu: "200m"

memory: "256Mi"

requests:

cpu: 100m

memory: 128Mi

---

apiVersion: v1

kind: Service

metadata:

annotations:

name: nginx-demo-service

namespace: demo

spec:

ports:

- port: 80

targetPort: 80

protocol: TCP

selector:

app: nginx

sessionAffinity: None

type: NodePort

应用:

$ kubectl apply -f nginx-deployment.yaml

检查是否将Pods调度到控制节点平面:

$ kubectl get pods -n demo -o wide

在Kubernetes控制平面(主)节点上调度Pods的方法

我们可以看到主节点中有一个pods,确认服务已启动:

$ kubectl get svc -n demo

在Kubernetes控制平面(主)节点上调度Pods的方法

由于我们正在使用NodePort,因此我们应该能够在31098端口上的任何群集节点IP上访问服务:

在Kubernetes控制平面(主)节点上调度Pods的方法

现在,我们可以做一下清理:

$ kubectl delete -f nginx-deployment.yaml

deployment.apps "nginx" deleted

service "nginx-service" deleted

$ kubectl get pods,svc -n demo

No resources found in demo namespace.

注:这就是如何在Kubernetes控制平面节点上调度Pods的全部内容。

 

相关主题

在Kubernetes Cluster中安装Helm 3和使用Helm 3的方法

精选文章
热门文章