部署多个work节点过于麻烦,于是打算直接在master节点部署服务测试
解决办法:
k8s集群init后,你的master节点会被固定分配污点taint信息,这个污点的作用是让没有设置容忍的pod不会被调度到这个节点,因此我们的服务一般不会被调度到master节点
方法1:直接去除master节点的污点信息
查看污点信息
kubectl describe node NODE_NAME | grep Taints
删除节点污点
kubectl taint node NODE_NAME node-role.kubernetes.io/master:NoSchedule-
再次查看污点
kubectl describe node NODE_NAME | grep Taints
为none说明污点被去除,此时master节点可被调度
部署nginx服务测试
# 1.部署nginx
kubectl create deployment nginx --image=nginx:1.14-alpine
# 2.暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 3.查看服务状态 (查看分配的端口)
kubectl get pods,svc
# 3.测试服务(ip:port)
方法2:为你的pod设置容忍
举例:
apiVersion: v1
kind: Pod
metadata:name: pod-tolerationnamespace: dev
spec:containers:- name: nginximage: nginx:1.17.1tolerations: # 添加容忍- key: "tag" # 要容忍的污点的keyoperator: "Equal" # 操作符value: "heima" # 容忍的污点的valueeffect: "NoExecute" # 添加容忍的规则,这里必须和标记的污点规则相同