栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kubernetes 允许调度 Pod 至主节点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kubernetes 允许调度 Pod 至主节点

默认情况下,出于安全原因, Kubernetes 集群不会在主节点上调度 pod。

建议保持这种方式,但对于测试环境,可能希望在主节点上调度 Pod 以最大限度地利用资源。

如果希望能够在 Kubernetes 主节点上调度 pod,则需要移除主节点上的一个污点(taint)。

查看节点信息:

$ kubectl describe nodes k8s-master-01 | grep Taint
Taints:             node-role.kubernetes.io/master:NoSchedule

主节点(master)属性中node-role.kubernetes.io/master:NoSchedule表示主节点不调度pod。

通过如下命令调整:

$ kubectl taint nodes --all node-role.kubernetes.io/master-
node/k8s-master-01 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 污点,这意味着调度程序将能够在任何地方调度 pod。

示例集群

有一个包含三个工作节点和一个主节点的集群。

$ kubectl get nodes -o wide
NAME            STATUS   ROLES                  AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
k8s-master-01   Ready    control-plane,master   4h20m   v1.23.2   192.168.1.140           Ubuntu 20.04.3 LTS   5.4.0-96-generic   containerd://1.4.12
k8s-worker-01   Ready                     3h28m   v1.23.2   192.168.1.141           Ubuntu 20.04.3 LTS   5.4.0-96-generic   containerd://1.4.12
k8s-worker-02   Ready                     3h20m   v1.23.2   192.168.1.142           Ubuntu 20.04.3 LTS   5.4.0-96-generic   containerd://1.4.12
k8s-worker-03   Ready                     153m    v1.23.2   192.168.1.143           Ubuntu 20.04.3 LTS   5.4.0-96-generic   containerd://1.4.12
新建命名空间test
kubectl create namespace test
部署应用

将创建一个包含 4 个副本的部署。

tee nginx-deployment.yaml< 

部署应用:

kubectl apply -f nginx-deployment.yaml
检查是否有 Pod 调度到主节点
$  kubectl get pods -n test -o wide
NAME                     READY   STATUS    RESTARTS   AGE     IP               NODE            NOMINATED NODE   READINESS GATES
nginx-59d7db4f6f-cvbbf   1/1     Running   0          2m49s   10.244.118.69    k8s-worker-02              
nginx-59d7db4f6f-fpt4v   1/1     Running   0          2m49s   10.244.36.196    k8s-worker-01              
nginx-59d7db4f6f-sql95   1/1     Running   0          2m49s   10.244.151.135   k8s-master-01              
nginx-59d7db4f6f-v85wd   1/1     Running   0          2m49s   10.244.7.129     k8s-worker-03              

可以看到主节点中有一个 pod在运行。

确认服务是否已上线
$ kubectl get svc -n test
NAME                 TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
nginx-test-service   NodePort   10.98.13.210           80:32001/TCP   3m14s

由于使用的是 NodePort,通过http://<任意节点IP>:32001访问。

$ curl  192.168.1.140:32001
$ curl  192.168.1.141:32001
$ curl  192.168.1.142:32001
$ curl  192.168.1.143:32001



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

清理示例
$ kubectl delete -f nginx-deployment.yaml
deployment.apps "nginx" deleted
service "nginx-service" deleted

$ kubectl get pods,svc -n test
No resources found in test namespace.

$ kubectl delete ns test
namespace "test" deleted
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号