首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
search
post
scala
instance
loops
golang
lua
php7
export
express
spring
case
int
nodejs
hook
uml
javascript
settings
bytecode
uri
testing
vba
merge
eval
future
bitmap
string
actionscrip
java
heatmap
random
config
split
php8
replace
ascii
solr
jsp
integer
buffer
go
web
timestamp
emoji
数组
typescript
regex
dll
join
yaml
perl
python3
vbscript
python
utf-8
c语言
datetime
hashset
blob
httpclient
httprequest
header
bash
tree
python2
cpython
less
foreach
window
byte
dockerfile
expression
const
filter
audio
ip
import
require
metadata
当前位置:
开发笔记
>
编程语言
> 正文
Kubernetes控制平面与节点之间的通信机制解析
作者:手机用户2502897397 | 来源:互联网 | 2024-11-11 21:38
本文深入解析了Kubernetes控制平面(特别是API服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。
对控制面节点(确切说是 apiserver)和 Kubernetes 集群之间的通信路径进行分类。目的是为了让用户能够自定义他们的安装,以实现对网络配置的加固,使得集群能够在不可信的网络上 (或者在一个云服务商完全公开的 IP 上)运行。
节点到控制面
Kubernetes 采用的是中心辐射型(Hub-and-Spoke)API 模式。所有从集群(或所运行的 Pods)发出的 API 调用都终止于 apiserver(其它控制面组件都没有被设计为可暴露远程服务)。apiserver 被配置为在一个安全的 HTTPS 端口(443)上监听远程连接请求, 并启用一种或多种形式的客户端身份认证机制。一种或多种客户端鉴权机制应该被启用, 特别是在允许使用匿名请求 或服务账号令牌的时候。
应该使用集群的公共根证书开通节点,这样它们就能够基于有效的客户端凭据安全地连接 apiserver。例如:在一个默认的 GCE 部署中,客户端凭据以客户端证书的形式提供给 kubelet。请查看 kubelet TLS 启动引导 以了解如何自动提供 kubelet 客户端证书。
想要连接到 apiserver 的 Pod 可以使用服务账号安全地进行连接。当 Pod 被实例化时,Kubernetes 自动把公共根证书和一个有效的持有者令牌注入到 Pod 里。kubernetes 服务(位于所有名字空间中)配置了一个虚拟 IP 地址,用于(通过 kube-proxy)转发 请求到 apiserver 的 HTTPS 末端。
控制面组件也通过安全端口与集群的 apiserver 通信。
这样,从集群节点和节点上运行的 Pod 到控制面的连接的缺省操作模式即是安全的,能够在不可信的网络或公网上运行
。
控制面到节点
从控制面(apiserver)到节点有两种主要的通信路径。第一种是从 apiserver 到集群中每个节点上运行的 kubelet 进程。第二种是从 apiserver 通过它的代理功能连接到任何节点、Pod 或者服务。
apiserver 到 kubelet
从 apiserver 到 kubelet 的连接用于:
获取 Pod 日志
挂接(通过 kubectl)到运行中的 Pod
提供 kubelet 的端口转发功能。
这些连接终止于 kubelet 的 HTTPS 末端。默认情况下,apiserver 不检查 kubelet 的服务证书。这使得此类连接容易受到中间人攻击, 在非受信网络或公开网络上运行也是 不安全的。
为了对这个连接进行认证,使用 --kubelet-certificate-authority 标志给 apiserver 提供一个根证书包,用于 kubelet 的服务证书。
如果无法实现这点,又要求避免在非受信网络或公共网络上进行连接,可在 apiserver 和 kubelet 之间使用 SSH 隧道。
最后,应该启用 Kubelet 用户认证和/或鉴权来保护 kubelet API。
apiserver 到节点、Pod 和服务
从 apiserver 到节点、Pod 或服务的连接默认为纯 HTTP 方式,因此既没有认证,也没有加密。这些连接可通过给 API URL 中的节点、Pod 或服务名称添加前缀 https: 来运行在安全的 HTTPS 连接上。不过这些连接既不会验证 HTTPS 末端提供的证书,也不会提供客户端证书。因此,虽然连接是加密的,仍无法提供任何完整性保证。这些连接 目前还不能安全地 在非受信网络或公共网络上运行。
SSH 隧道
Kubernetes 支持使用 SSH 隧道来保护从控制面到节点的通信路径。在这种配置下,apiserver 建立一个到集群中各节点的 SSH 隧道(连接到在 22 端口监听的 SSH 服务) 并通过这个隧道传输所有到 kubelet、节点、Pod 或服务的请求。这一隧道保证通信不会被暴露到集群节点所运行的网络之外。
SSH 隧道目前已被废弃。除非你了解个中细节,否则不应使用。Konnectivity 服务是对此通信通道的替代品。
Konnectivity 服务
在 Kubernetes v1.18 [beta] 中,作为 SSH 隧道的替代方案,Konnectivity 服务提供 TCP 层的代理,以便支持从控制面到集群的通信。Konnectivity 服务包含两个部分:Konnectivity 服务器和 Konnectivity 代理,分别运行在 控制面网络和节点网络中。Konnectivity 代理建立并维持到 Konnectivity 服务器的网络连接。启用 Konnectivity 服务之后,所有控制面到节点的通信都通过这些连接传输。
数据库
api
server
ip
安全
https
注入
日志
kubectl
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
java
提升 Kubernetes 集群管理效率的七大专业工具
Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ...
[详细]
蜡笔小新 2024-11-07 17:01:31
java
服务器部署中的安全策略实践与优化
服务器部署中的安全策略实践与优化 ...
[详细]
蜡笔小新 2024-11-10 13:04:30
java
解决 Ubuntu 环境下 Hadoop 集群 SSH 密钥认证问题
本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ...
[详细]
蜡笔小新 2024-11-13 09:14:02
int
使用Shell脚本高效部署MHA高可用集群
本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ...
[详细]
蜡笔小新 2024-11-10 10:15:46
export
如何在任意浏览器中轻松安装并使用VSCode——Codeserver简易指南
code-server 是一款强大的工具,允许用户在任何服务器上部署 VSCode,并通过浏览器进行访问和使用。这一解决方案不仅简化了开发环境的搭建过程,还提供了高度灵活的工作方式。用户只需访问 GitHub 上的官方仓库(GitHub-coder/code-server),即可获取详细的安装和配置指南,快速启动并运行 code-server。无论是个人开发者还是团队协作,code-server 都能提供高效、便捷的代码编辑体验。 ...
[详细]
蜡笔小新 2024-11-08 14:48:41
export
TCP三次握手过程详解与图示解析
本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ...
[详细]
蜡笔小新 2024-11-06 08:31:52
int
基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ...
[详细]
蜡笔小新 2024-11-13 15:49:49
java
使用OpenSSL自建CA证书(实测有效)
本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ...
[详细]
蜡笔小新 2024-11-13 09:55:03
export
Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境 ...
[详细]
蜡笔小新 2024-11-12 22:05:03
post
网站访问全流程解析
本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ...
[详细]
蜡笔小新 2024-11-12 18:13:16
java
探讨HTTP隧道技术在RDP暴力破解中的应用
本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ...
[详细]
蜡笔小新 2024-11-12 12:08:47
java
秒建一个后台管理系统?用这5个开源免费的Java项目就够了
秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ...
[详细]
蜡笔小新 2024-11-12 03:21:33
java
在Windows环境中使用SecureCRT高效连接Linux服务器
SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ...
[详细]
蜡笔小新 2024-11-10 14:46:15
java
Ave V8 JavaScript 引擎:持续优化与创新
V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ...
[详细]
蜡笔小新 2024-11-09 15:56:40
java
Linux 环境下 Java 及相关软件的安装指南
本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ...
[详细]
蜡笔小新 2024-11-13 18:10:16
手机用户2502897397
这个家伙很懒,什么也没留下!
Tags | 热门标签
search
post
scala
instance
loops
golang
lua
php7
export
express
spring
case
int
nodejs
hook
uml
javascript
settings
bytecode
uri
testing
vba
merge
eval
future
bitmap
string
actionscrip
java
heatmap
RankList | 热门文章
1
JDK源码学习(1)HashMap源码分析,HashMap与HashTable的差别
2
Vue如何实现选择城市功能
3
信息系统实践手记4平台对接的一些思考
4
职场“老好人”生存法则
5
HDFS 09 – HDFS NameNode 的高可用机制
6
C语言直接调用未声明的函数
7
php创建文件夹模式07000777,文件与目录权限
8
第33篇
9
谷歌介绍最新发现的安卓零日漏洞 可利用漏洞攻击Android 8.0及以上版本
10
计数,排列
11
JSP与Servlet学习总结(一)
12
跪求大婶帮忙,sql两列数据合并为一行
13
鑴字意思 在新华字典的读音解释笔画常用组词起名
14
python openpyxl的使用方法
15
php larval 胖模型,[PHP] Laravel实用入门:路由和绑定模型
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有