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

然后执行

  1. kubectl create -f tomcat.yml

yaml如下:

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: tomcat-app
  5. spec:
  6. selector:
  7. matchLabels:
  8. name: tomcat
  9. replicas: 4
  10. template:
  11. metadata:
  12. labels:
  13. name: tomcat
  14. spec:
  15. containers:
  16. - name: tomcat
  17. image: tomcat:8.5.43
  18. imagePullPolicy: IfNotPresent
  19. ports:
  20. - containerPort: 8080
  21. ---
  22. apiVersion: v1
  23. kind: Service
  24. metadata:
  25. name: tomcat-http
  26. spec:
  27. ports:
  28. - port: 8080
  29. targetPort: 8080
  30. # ClusterIP, NodePort, LoadBalancer
  31. type: ClusterIP
  32. selector:
  33. name: tomcat

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

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

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

PS:

  1. PS:
  2. nodePort:
  3. 外部流量访问K8S集群中Service入口的一种方式
  4. 比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应servicetype=NodePortnodePort=30001。其他用户就可以通过浏览器http://node:30001访问到该web服务。
  5. port:
  6. K8S集群内部服务之间访问service的入口。即clusterIP:portservice暴露在clusterIP上的端口
  7. targetPort:
  8. 容器的端口(最终的流量端口)。targetPort是“pod”上的端口,从portnodePort上来的流量,经过kube-proxy流入到后端podtargetPort上,最后进入容器。
  9. 例子:
  10. apiVersion: v1
  11. kind: Service
  12. metadata:
  13. name: nginx-service
  14. spec:
  15. type: NodePort // 有配置NodePort,外部流量可访问k8s中的服务
  16. ports:
  17. - port: 30080 // 服务访问端口
  18. targetPort: 80 // 容器端口
  19. nodePort: 30001 // NodePort
  20. selector:
  21. name: nginx-pod
  22. 总结:
  23. 总的来说,portnodePort都是service的端口,前者暴露给k8s集群内部服务访问,后者暴露给k8s集群外部流量访问。从上两个端口过来的数据都需要经过反向代理kube-proxy,流入后端podtargetPort上,最后到达pod内的容器。

K8S部署超过节点的Pod的更多相关文章

  1. K8s二进制部署单节点 etcd集群,flannel网络配置 ——锥刺股

    K8s 二进制部署单节点 master    --锥刺股 k8s集群搭建: etcd集群 flannel网络插件 搭建master组件 搭建node组件 1.部署etcd集群 2.Flannel 网络 ...

  2. K8s二进制部署单节点 master组件 node组件 ——头悬梁

    K8s二进制部署单节点   master组件 node组件   --头悬梁 1.master组件部署 2.node   组件部署 k8s集群搭建: etcd集群 flannel网络插件 搭建maste ...

  3. [k8s]zookeeper集群在k8s的搭建(statefulset模式)-pod的调度

    之前一直docker-compose跑zk集群,现在把它挪到k8s集群里. docker-compose跑zk集群 zk集群in k8s部署 参考: https://github.com/kubern ...

  4. Rancher+K8S部署手册

    目前创建K8S集群的安装程序最受欢迎的有Kops,Kubespray,kubeadm,rancher,以及个人提供的脚本集等. Kops和Kubespary在国外用的比较多,没有处理中国的网络问题,没 ...

  5. kubeadm部署k8s1.9高可用集群--4部署master节点

    部署master节点 kubernetes master 节点包含的组件: kube-apiserver kube-scheduler kube-controller-manager 本文档介绍部署一 ...

  6. [转帖]k8s 部署问题解决

    k8s 部署问题解决 https://www.jianshu.com/p/f53650a85131 本文记录一下在部署 k8s 时遇到的一些问题及解决方法,具体部署流程可以参考 ubuntu 安装 k ...

  7. ACK容器服务发布virtual node addon,快速部署虚拟节点提升集群弹性能力

    在上一篇博文中(https://yq.aliyun.com/articles/647119),我们展示了如何手动执行yaml文件给Kubernetes集群添加虚拟节点,然而,手动执行的方式用户体验并不 ...

  8. 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形

    本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...

  9. 【K8S】K8S部署Metrics-Server服务

    写在前面 在新版的K8S中,系统资源的采集均使用Metrics-Server服务,可以通过Metrics-Server服务采集节点和Pod的内存.磁盘.CPU和网络的使用率等信息. 读者可参考< ...

随机推荐

  1. React技巧之处理tab页关闭事件

    原文链接:https://bobbyhadz.com/blog/react-handle-tab-close-event 作者:Borislav Hadzhiev 正文从这开始~ 总览 在React中 ...

  2. Java:如何打印整个字符串数组?

    例: public static void main(String[] args) { String prodName = "雇员姓名,雇员唯一号"; String[] prodN ...

  3. OWL页面创建Copy功能,把选择内容复制到QC

  4. 高仿Android网易云音乐OkHttp+Retrofit+RxJava+Glide+MVC+MVVM

    简介 这是一个使用Java(以后还会推出Kotlin版本)语言,从0开发一个Android平台,接近企业级的项目(我的云音乐),包含了基础内容,高级内容,项目封装,项目重构等知识:主要是使用系统功能, ...

  5. NC50965 Largest Rectangle in a Histogram

    NC50965 Largest Rectangle in a Histogram 题目 题目描述 A histogram is a polygon composed of a sequence of ...

  6. NC235250 牛可乐的翻转游戏

    NC235250 牛可乐的翻转游戏 题目 题目描述 牛可乐发明了一种新型的翻转游戏! 在一个有 \(n\) 行 \(m\) 列的棋盘上,每个格子摆放有一枚棋子,每一枚棋子的颜色要么是黑色,要么是白色. ...

  7. Unsupervised Person Re-identification by Soft Multilabel Learning

    简介: 这是一篇19年CVPR的跨域无监督Re-ID论文,在Market1501和DukeMTMC-reID上分别达到了67.7%和67.1%的rank-1精度,算是一篇将准确度刷得比较高的论文了,在 ...

  8. 基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理

    在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数 ...

  9. Pytorch分布式训练

    用单机单卡训练模型的时代已经过去,单机多卡已经成为主流配置.如何最大化发挥多卡的作用呢?本文介绍Pytorch中的DistributedDataParallel方法. 1. DataParallel ...

  10. Webpack干货系列 | 怎么运用 Webpack 5 处理css/scss/sass、less、stylus样式资源

    程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构. 本文摘要:主要讲解webpack 5 如何高效处理CSS 资源.scss/sass 资源.l ...