ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

K8S部署超过节点的Pod

2022-03-26 11:02:43  阅读:164  来源: 互联网

标签:targetPort name tomcat 端口 port 集群 Pod K8S 节点


在阿里云上部署了一个K8S集群,一master, 两node;

然后执行

kubectl create -f tomcat.yml

yaml如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-app
spec:
  selector:
    matchLabels:
      name: tomcat
  replicas: 4
  template:
    metadata:
      labels:
        name: tomcat
    spec:
      containers:
      - name: tomcat
        image: tomcat:8.5.43
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat-http
spec:
  ports:
    - port: 8080
      targetPort: 8080
  # ClusterIP, NodePort, LoadBalancer
  type: ClusterIP
  selector:
    name: tomcat

这样就是要启动4 个tomcat实例,而且启动成功了

[root@k8s-master tomcat]# kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
tomcat-app-59bc6cd74b-b4k9l   1/1     Running   0          19m
tomcat-app-59bc6cd74b-b7rx6   1/1     Running   0          19m
tomcat-app-59bc6cd74b-p6xxf   1/1     Running   0          19m
tomcat-app-59bc6cd74b-v894j   1/1     Running   0          19m

说明K8S 有能力部署超过自己Node数量的集群节点的能力,非常牛逼

PS:

PS:
nodePort:
	外部流量访问K8S集群中Service入口的一种方式
	
比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePort=30001。其他用户就可以通过浏览器http://node:30001访问到该web服务。

port:
	K8S集群内部服务之间访问service的入口。即clusterIP:port是service暴露在clusterIP上的端口
	
	
targetPort:
容器的端口(最终的流量端口)。targetPort是“pod”上的端口,从port和nodePort上来的流量,经过kube-proxy流入到后端pod的targetPort上,最后进入容器。



例子:
apiVersion: v1
kind: Service
metadata:
 name: nginx-service
spec:
 type: NodePort         // 有配置NodePort,外部流量可访问k8s中的服务
 ports:
 - port: 30080          // 服务访问端口
   targetPort: 80       // 容器端口
   nodePort: 30001      // NodePort
 selector:
  name: nginx-pod
  
  
  
  
总结:
总的来说,port和nodePort都是service的端口,前者暴露给k8s集群内部服务访问,后者暴露给k8s集群外部流量访问。从上两个端口过来的数据都需要经过反向代理kube-proxy,流入后端pod的targetPort上,最后到达pod内的容器。

标签:targetPort,name,tomcat,端口,port,集群,Pod,K8S,节点
来源: https://www.cnblogs.com/gradyblog/p/16057975.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有