【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务

这篇具有很好参考价值的文章主要介绍了【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

k8s内部网络访问外部网络,云原生/云计算 - 入门到实战,云原生,kubernetes,k8s,云计算

目录

一、认识 Kubernetes 网络

二、外部网络如何访问 k8s 内部服务

1. NodePort

2. Load Balancer

3. Ingress


一、认识 Kubernetes 网络

Kubernetes 最底层的网络为节点网络,用来保证 k8s 集群的节点(master 和 worker、worker 节点之间)能够做正常的 IP 寻址和通讯。

Kubernetes 第二层网络就是 Pod 网络,构建于节点网络之上,用来保证 k8s 集群中的 pod 之间能够做正常的 IP 寻址和通讯。作为集群最基本的调度单位,一个 Pod 内部可以有一个或多个容器,容器之间直接通过 localhost 互相访问;这些容器可共享 Pod 的网络栈,容器想要访问外部资源则通过此网络栈。如下为该两层的示意图:

k8s内部网络访问外部网络,云原生/云计算 - 入门到实战,云原生,kubernetes,k8s,云计算

那么在 Pod 之间又是如何进行 IP 寻址和通讯的呢?

在 Kubernetes 集群当中,可以把每一个 Pod 看成是一个自带虚拟网卡的小型虚拟机。在节点网络的基础上,k8s 会创建一个专门为 Pod 寻址和访问服务的虚拟网络(即 Pod 网络),首先 k8s 会在每个节点之间创建虚拟网桥,并管理网桥的 IP 地址空间和分配,其次 k8s 会修改路由器的路由规则,使得不同节点上的 Pod 可以相互通信。

但是还有一个问题,那就是 Pod 在 k8s 中是不固定的,可能会挂起或者重启,且挂起重启都是不可预期的,那么这就会导致服务的 IP 也随着不停的变化,给用户的寻址造成一定的困难。在上文中我们也提到了解决此问题用到了服务 service。service 网络的实现也就是 Kubernetes 的第三层网络。

service 是由 k8s 单独创建和管理的,有独立的 IP 地址空间,它的 IP 称为 Cluster-IP。

二、外部网络如何访问 k8s 内部服务

要知道,Pod 网络和 service 网络都是 k8s 的内部网络,外部用户是无法访问的,而外部网络和 节点网络是可以互通的。那么如果能够实现节点网络和 service 网络的互通,就可以间接实现外部与 service 网络的互通了。

1. NodePort

NodePort 是一种将 Kubernetes 服务暴露在节点网络上的一种机制。其实就是 k8s 中一种特殊的 service,k8s 会在集群中的每一个节点上暴露一个相同的端口,通过端口以及 kube-proxy 转发服务让节点网络可以访问到 k8s 内部的 service。 

k8s内部网络访问外部网络,云原生/云计算 - 入门到实战,云原生,kubernetes,k8s,云计算

2. Load Balancer

Node Port 将 k8s 中的服务暴露在节点网络中后,想要外部网络访问到节点网络进而访问到 k8s 中的服务还需要引入负载均衡设备,也就是 load balancer。

k8s内部网络访问外部网络,云原生/云计算 - 入门到实战,云原生,kubernetes,k8s,云计算

load balancer 具有公网 IP,可以将外部流量转换路由到节点网络中,还能够实现对节点网络的负载均衡,以实现用户通过公网 IP 访问到 k8s 内部的服务。

load balancer 也是一种特殊的 service,本地 Kubernets 部署是不支持 load balances 的;公有云如阿里云等则是支持的,可以按需销毁和创建 load balancer。

3. Ingress

如果需要暴露在节点网络中的服务有很多,仅仅使用 load balancer 的话成本是很高的。Ingress 可以等价于反向代理或者网关,它的主要作用就是反向路由,它可以将多个 k8s 内部的服务同时暴露出去但仅需一个 load balancer。Ingress 还有一些其他功能如动态路由更新、安全认证、日志监控等。文章来源地址https://www.toymoban.com/news/detail-795123.html

到了这里,关于【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行

    Kubernetes是一个开源的, 用于编排云平台中多个主机上的容器化的应用,目标是让部署容器化的应用能简单并且高效的使用, 提供了应用部署,规划,更新,维护的一种机制 。其核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可

    2024年02月08日
    浏览(86)
  • 【kubernetes】认识K8S基础理论

    目录 一、k8s是什么? 二、为什么要用k8s? 三、k8s的主要功能 四、k8s的集群架构和组件 4.1k8s的集群架构介绍 4.2k8s的master的核心组件 ①kube-apiserver:作为所有服务请求的统一访问入口 ②kube-controller-manager:控制器管理器,可以通过apiserver监控整个集群的状态,确保集群处于预

    2024年03月16日
    浏览(55)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(76)
  • 01-k8s学习笔记之认识 Kubernetes

    应用部署的三大阶段 k8s 的特点 Apache Mesos Docker Swarm Google Kubernetes

    2024年01月16日
    浏览(62)
  • 【Kubernetes】 从基础认识 k8s核心pod相关概念

    提示:此篇帮助朋友们,养成从0到1不断延伸知识的一种方法 最简单的创建pod入手 访问官方文档,直接使用案例,进行修改即可! 官网地址:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/ 删除不需要的部分,根据规则添加需要的参数即可得到需要的,代码如

    2024年01月25日
    浏览(68)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(54)
  • K8S集群实现外部访问(INGRESS)

    环境: master node01 node02 192.168.1.40 192.168.1.41 192.168.1.42 作用:Ingress 是对集群中服务的外部访问进行管理的 API 对象。 PS:创建nginx和httpd PS:namespace为ingress-nginx PS:它现在已经有一个模板,用来描述Ingress资源能够收集到的信息了 PS:有DNS的话可以设置解析,没有的话必须在h

    2024年01月19日
    浏览(46)
  • k8s实现外部访问minikube集群

    我们现在大家都知道了 minikube集群相当于k8s的一个虚拟机。 同时pod每次消亡重建之后都会分配一个虚拟的ip,这个ip可供集群内部访问,但是如果要对外访问呢? 我们可以给他暴露ip出来,但是如果pod宕机后重建ip就发生了变化,所以不能对pod进行ip的暴露。 那应该对什么进行

    2024年02月03日
    浏览(47)
  • 云原生Kubernetes:K8S存储卷

    目录 一、理论 1.存储卷 2.emptyDir 存储卷 3.hostPath卷 4.NFS共享存储 5.PVC 和 PV 6.静态创建PV 7.动态创建PV 二、实验  1.emptyDir 存储卷 2.hostPath卷 3.NFS共享存储 4.静态创建PV 5.动态创建PV 三、问题 1.生成pod一直pending 2.shoumount -e未显示共享目录 3.静态创建pv 报错 4.使用 Deployment 来创建

    2024年02月07日
    浏览(73)
  • 【云原生K8S】Kubernetes之探针

    目录 一、探针是什么 二、探针类型  Ⅰ、livenessProbe 容器重启策略  Ⅱ、readinessProbe Ⅲ、startupProbe 执行顺序: 字段详情 三、探测机制 Ⅰ、HTTP GET探针 Ⅱ、TCP套接字探针 Ⅲ、Exec探针 探针:是由 kubelet 对容器执行的定期诊断 要执行诊断,则需kubelet 调用由容器实现的 Handler。

    2024年02月09日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包