kubernetes容易混淆的几个端口
k8s服务的配置文件中几个端口参数,nodePort、port、targetPort,刚开始的时候不理解什么意思很容易混淆写错,这里总结一下,概括来说就是nodePort和port都是k8s的service暴露的端口,targetPort是容器本身暴露的端口。区别是nodePort暴露给k8s集群外部流量访问用,port暴露给k8s集群内部服务访问用。从上两个端口过来的数据最终都需要经过反向代理kube-proxy,流入后端pod的targetPort上,最后到达pod内的容器。
下面具体解释一下
首先明确容器部署后是只需要k8s集群内部使用还是需要通过集群外使用,如果不需要集群外访问就不需要nodePort,直接如下写就可以
spec:
clusterIP: None
ports:
- name: {{ .Values.service.name }}
下面详细说说每个端口的意思
1、nodePort 端口
k8s集群中发发布完service之后,如果需要外部访问,nodePort是一种访问方式,即nodePort是提供给外部流量访问k8s集群中service使用的端口。例如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应的service如下,就可以从外部通过浏览器http://node:28080访问到该web服务。
注意如果配置文件中不指定nodePort,部署后k8s会自动指定一个端口号来用。
spec:
type: NodePort
ports:
- name: {{ .Values.service.name }}
nodePort: 28080
2、port 端口
k8s集群内部服务之间相互访问service的端口。例如连接mysql使用3306端口,容器创建后暴露了3306端口,集群内其他容器想通过23306端口访问mysql服务,但是没有配置NodePort,外部流量就不能访问mysql服务。对应的service.yaml如下
spec:
type: NodePort
ports:
- name: {{ .Values.service.name }}
port: 23306
protocol: TCP
targetPort: 3306
3、targetPort端口
从上面例子也能看出来targetPort是什么,它就是容器真正暴露的端口(使用DockerFile中的EXPOSE),targetPort是pod上的端口,从port和nodePort上来的流量,经过kube-proxy流入到后端pod的targetPort上,最后进入容器内。例如一个容器暴露8080端口的tomcat完整配置如下,nodePort可以不配,会自动指定一个端口。
spec:
type: NodePort
ports:
- name: {{ .Values.service.name }}
nodePort: 28080 # 外部通过28080访问
port: 28081 # k8s集群内service通过28081访问
protocol: TCP
targetPort: 8080 # 容器实际暴露端口
selector:
app: {{ .Values.appName }}
需要开放多个端口是,在ports下面依次配置多个端口就好,例如
spec:
type: NodePort
ports:
- name: {{ .Values.service.name }}
port: {{ .Values.service.port }}
protocol: TCP
targetPort: {{ .Values.service.targetPort }}
- name: {{ .Values.service.managerName }}
port: {{ .Values.service.managerPort }}
protocol: TCP
targetPort: {{ .Values.service.managerTargetPort }}
selector:
app: {{ .Values.appName }}
kubernetes容易混淆的几个端口的更多相关文章
- Kubernetes使用Eedpoints连接外部服务端口
Kubernetes使用Eedpoints连接外部服务端口 背景: 在Kubernetes的使用环境中,我们经常要连接外部的一些服务,比如mysql Elasticsearch kafka 等等外部的 ...
- Kubernetes service 三种类型/NodePort端口固定
Kubernetes service 三种类型 • ClusterIP:默认,分配一个集群内部可以访问的虚拟IP(VIP)• NodePort:在每个Node上分配一个端口作为外部访问入口• Load ...
- kubernetes 外部访问集群暴露端口服务
在yaml文件中多个不同类型资源可以用“---”在划分 name: httpd2-svc namespace: kube-public #给资源分配网络 所用资源将在 kube-public ...
- 在Openstack上创建并访问Kubernetes集群
第一部分:创建集群 在Openstack部署Kubernetes集群运行Nginx容器的步骤,其中包括: 利用Murano部署Kubernetes集群 配置Openstack的安全性使Kubernet ...
- Docker Kubernetes 环境搭建
Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...
- Docker Kubernetes 常用命令
Docker Kubernetes 常用命令 增 # 通过文件名或标准输入创建资源. kubectl create # 读取指定文件内容,进行创建.(配置文件可指定json,yaml文件). kube ...
- k8s技术--Kubernetes集群kubectl命令的常见使用方法
简介:kubectl是一个命令行界面,用于运行针对Kubernetes群集的命令. 语法: kubectl [command] [TYPE] [NAME] [flags] command:指定您希望对 ...
- Kubernetes 选择 IPVS
什么是 IPVS ? IPVS (IP Virtual Server)是在 Netfilter 上层构建的,并作为 Linux 内核的一部分,实现传输层负载均衡. IPVS 集成在 LVS(Linux ...
- [Kubernetes]Kubernetes的网络模型
Kubernetes的网络模型从内至外由四个部分组成: Pod内部容器所在的网络 Pod所在的网络 Pod和Service之间通信的网络 外界与Service之间通信的网络 建议在阅读本文之前先了解D ...
随机推荐
- Linux学习笔记之系统中的分区和文件系统
转自 http://blog.csdn.net/hanxuehen/article/details/8229472
- Spring Aop(六)——@DeclareParents介绍
转发:https://www.iteye.com/blog/elim-2395410 6 @DeclareParents介绍 @DeclareParents注解也是Aspectj提供的,在使用基于As ...
- Mac之间的 远程控制
Mac 自带屏幕共享的工具,两台 Mac 之间的设置步骤: 1.主机(被远程控制的电脑)的设置: 系统偏好设置 -->共享 : 选择打开屏幕共享服务: 添加访问用户 或者 允许所有用户: 电脑 ...
- linux双机热备份
使用HeartBeat实现高可用HA的配置过程详解 一.写在前面 HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供 ...
- zabbix监控LAMP全教程
一.安装前准备 A.下载yum源 1.备份/etc/yum.repos.d/CentOS-Base.repo ,在备份之前,要先安装wget 插件 #mv /etc/yum.repos.d/CentO ...
- go module配置
参考文章: http://c.biancheng.net/view/4774.html 1.
- Django之session详解
好文章来自追风的小蚂蚁:https://www.cnblogs.com/zhuifeng-mayi/p/9099811.html cookie:Cookie,有时也用其复数形式 Cookies,指某些 ...
- Linux下配置APUE的编译 报错之后如何处理
APUE即Unix环境高级编程,本书中几乎所有的程序都包含一个apue.h的头文件,那如何配置这个apue.h呢? 官方地址:http://www.apuebook.com/apue3e.html 1 ...
- Java 之前总结
写Java程序 1使用记事本,编写代码 2命名为文件里的类名称相一致 “.java” 3编译编译器创建class文件 编译 打开命令行窗口,进入Java文件所在的目录,执行命令:javac Welco ...
- [转帖] 修改nginx 默认上传文件大小
nginx默认会限制上传文件的大小为1M https://blog.51cto.com/ycgit/1563307 艺晨光关注0人评论12037人阅读2014-10-13 15:29:50 htt ...