如何解决部署在集群 Kubernetes 中的工作线程上
我是 kubernetes 的新手。为了进行测试,我在 Redhat 8 上的 VM 上安装了一个 master 和一个 worker 但我在问一个问题。当我尝试部署我的 pod 时:
apiVersion: v1
kind: Pod
metadata:
name: simple-webapp-color
labels:
app: web
spec:
containers:
- name: web
image: mmumshad/simple-webapp-color
ports:
- containerPort: 8080
env:
- name: APP_COLOR
value: red
我在 master 上使用:
kubectl apply -f pod-test.yaml
然后它部署在我的主人上...这正常吗?我了解在我们的工作人员上进行主部署...:/
这是我的 kubectl get 节点:
[root@VLINRHELKUBE01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
vlinrhelkube01 Ready control-plane,master 18h v1.21.1
vlinrhelkube02 Ready <none> 18h v1.21.1
解决方法
这是一个社区 Wiki 答案,发布是为了更好的可见性,因此请随意编辑它并添加您认为重要的任何其他详细信息。
正如评论中提到的 OP,问题已经通过在主(控制平面)节点上设置适当的 taint 来解决,遵循 coderanger's 建议:
您是否在控制平面节点上设置了污点? – coderanger 5 月 21 日在 9:14
没有并且带有 kubectl 污点节点 vlinrhelkube01 key1=value1:NoSchedule 我已经解决了我的问题!谢谢 ! – 巴蒂斯特 吉约 5 月 21 日 9:22
我们可以读到here:
您使用 kubectl taint 向节点添加污点。 例如,
kubectl taint nodes node1 key1=value1:NoSchedule
在节点 node1
上放置污点。污点具有键 key1
,值
value1
和污点效果 NoSchedule
。这意味着没有 Pod
能够安排到 node1
上,除非它有一个匹配的
宽容。
默认情况下,Kubernetes 不会将您的应用程序部署到主节点。
但这可以根据您的配置进行更改。
如果你例如使用 RKE2 作为分发工作将默认安排在所有节点之间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。