首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
node.js
web
lua
dagger
heatmap
cookie
post
hashset
string
hashcode
bytecode
merge
httpclient
httprequest
uri
rsa
jsp
email
web3
actionscrip
express
input
process
ascii
get
subset
datetime
default
integer
perl
instance
join
export
spring
bash
object
hook
audio
range
select
replace
frameworks
数组
schema
tags
list
shell
client
php5
main
substring
nodejs
timezone
triggers
chat
char
regex
runtime
usb
bit
config
metadata
testing
less
utf-8
vbscript
function
fetch
text
cmd
python3
hash
io
php7
require
copy
controller
split
const
当前位置:
开发笔记
>
编程语言
> 正文
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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
string
SQL数据库面试题解析
本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ...
[详细]
蜡笔小新 2024-12-22 14:43:35
get
云函数与数据库API实现增删查改的对比
本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ...
[详细]
蜡笔小新 2024-12-22 00:56:21
get
利用MySQL弱口令获取系统权限的实战案例
本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ...
[详细]
蜡笔小新 2024-12-21 18:17:57
post
SP框架数据操作指南
本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ...
[详细]
蜡笔小新 2024-12-21 13:27:32
get
云服务器环境配置指南:Nginx、Tomcat、JDK与MySQL的安装与设置
本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ...
[详细]
蜡笔小新 2024-12-21 10:18:56
get
NTP服务器配置详解:原理与工作模式
本文深入探讨了网络时间协议(NTP)的工作原理及其多种工作模式,旨在帮助读者全面理解NTP的配置参数和应用场景。NTP是基于RFC 1305的时间同步标准,广泛应用于分布式系统中,确保设备间时钟的一致性。 ...
[详细]
蜡笔小新 2024-12-22 11:50:57
web
简化报表生成:EasyReport工具的全面解析
本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ...
[详细]
蜡笔小新 2024-12-22 11:11:28
process
SQL Server 相关
1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ...
[详细]
蜡笔小新 2024-12-21 20:05:21
default
解决C# Windows Forms客户端连接SignalR服务器时出现的错误
在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ...
[详细]
蜡笔小新 2024-12-21 16:55:52
get
Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ...
[详细]
蜡笔小新 2024-12-21 14:48:49
default
phpMyAdmin 安装与配置详解
本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ...
[详细]
蜡笔小新 2024-12-21 11:54:31
jsp
探索新一代API文档工具,告别Swagger的繁琐
对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ...
[详细]
蜡笔小新 2024-12-22 11:02:41
get
ElasticSearch 集群监控与优化
本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ...
[详细]
蜡笔小新 2024-12-21 13:43:04
get
Netty HTTP服务器运行时为何出现大量本地环回连接
在使用Netty 4.1.48版本运行自带的HTTP服务器示例时,观察到大量本地IP环回连接。本文将探讨这些环回连接的原因,并解释其与TCP连接的关系。 ...
[详细]
蜡笔小新 2024-12-21 13:06:28
get
解决Classic ASP与PHP HMAC_SHA256哈希结果不一致的问题
本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ...
[详细]
蜡笔小新 2024-12-21 10:38:09
手机用户2502897397
这个家伙很懒,什么也没留下!
Tags | 热门标签
node.js
web
lua
dagger
heatmap
cookie
post
hashset
string
hashcode
bytecode
merge
httpclient
httprequest
uri
rsa
jsp
email
web3
actionscrip
express
input
process
ascii
get
subset
datetime
default
integer
perl
RankList | 热门文章
1
优化工具:Ubuntu Tweak 0.4.9.2发布
2
Linux的grpunconv命令有什么用
3
linux 中如何查看内存总大小
4
linux内核网络协议栈
5
Docker的启动与停止命令
6
暗区突围安卓和ios能一起玩吗 暗区突围安卓和ios互通吗
7
GitLab 数据备份和恢复
8
一个网友的问题:关于高速公路的通信安全问题!
9
装配图位置偏转怎么调整_物理微课|匀变速直线运动、电容器动态分析及磁偏转技巧、方法、模型...
10
软工 之 计划和需求分析
11
关于双系统安装ubuntu16.04开机出现GRUB引导问题
12
华为云管理网络的“三全”之策
13
Vagrant的创建的虚拟机位置能否设置为其他盘符?(太占空间了)
14
什么是Docker存储库?
15
一个细胞的生命周期是3小时,1小时分裂一次,求n小时后容器内有多少个细胞。
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有