首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
web
hashset
select
loops
erlang
int
uri
settings
io
schema
less
keyword
process
runtime
netty
node.js
shell
post
heatmap
web3
integer
window
php
command
main
ascii
timezone
regex
golang
uml
client
lua
java
dockerfile
cSharp
hook
expression
replace
testing
triggers
c语言
install
text
sum
string
iostream
include
get
plugins
require
controller
tree
byte
copy
instance
case
vbscript
request
httprequest
actionscrip
bitmap
flutter
function
blob
future
spring
tags
frameworks
substring
jar
version
python3
emoji
php8
email
audio
js
datetime
php7
当前位置:
开发笔记
>
编程语言
> 正文
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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
ssh
告别传统文件传输,迎接新一代高效工具Croc
在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ...
[详细]
蜡笔小新 2024-12-26 16:16:06
int
优化联通光猫DNS服务器设置
本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ...
[详细]
蜡笔小新 2024-12-28 11:28:18
main
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
php
深入理解 SQL 视图、存储过程与事务
本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ...
[详细]
蜡笔小新 2024-12-27 17:40:42
web
如何配置Unturned服务器及其消息设置
本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ...
[详细]
蜡笔小新 2024-12-27 13:47:38
web
网络攻防实战:从HTTP到HTTPS的演变
本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ...
[详细]
蜡笔小新 2024-12-27 11:34:50
command
360SRC安全应急响应:从漏洞提交到修复的全过程
本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ...
[详细]
蜡笔小新 2024-12-27 11:10:05
main
使用Vultr云服务器和Namesilo域名搭建个人网站
本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ...
[详细]
蜡笔小新 2024-12-26 16:36:34
main
DB2 数据库编目管理:创建与删除
本文介绍了如何在 DB2 环境中创建和删除数据库编目。创建编目是连接新数据库的必要步骤,涉及获取数据库连接信息、使用命令行工具进行配置,并验证连接的有效性。删除编目则用于移除不再需要的数据库连接。 ...
[详细]
蜡笔小新 2024-12-28 11:43:05
php
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
php
PHP检测AJAX请求的有效方法
本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ...
[详细]
蜡笔小新 2024-12-27 21:20:10
regex
Java面试题解析
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
io
2023年全球运营商网络设备市场预计突破202亿美元
尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ...
[详细]
蜡笔小新 2024-12-27 12:44:44
main
解决Hive启动时权限被拒问题
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
int
深入解析 HTTP 500 内部服务器错误
本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ...
[详细]
蜡笔小新 2024-12-26 16:55:25
手机用户2502897397
这个家伙很懒,什么也没留下!
Tags | 热门标签
web
hashset
select
loops
erlang
int
uri
settings
io
schema
less
keyword
process
runtime
netty
node.js
shell
post
heatmap
web3
integer
window
php
command
main
ascii
timezone
regex
golang
uml
RankList | 热门文章
1
C语言基础复习(头文件、递归与非递归、指针的含义)
2
phptrim源码分析
3
Spring(九):Bean的自动装配
4
Windows 10 安装部署docker
5
《Small Memory Software:Patterns For System With Limited Memory》读书笔记
6
app保活水平,靠着这份面试题跟答案,工作感悟
7
MySQL 入门(1):查询和更新的内部实现
8
wordpress php 7.0,WordPress升级PHP版本至7.2
9
使用length检测vachar长度
10
UOS 使用python快速搭建一个HTTP服务,实现局域网共享文件
11
求二叉树的中值数组
12
linux服务器部署系列(转)
13
python进阶11:创建类和实例
14
jquery dom 节点操作
15
如何返回懒惰实例化的动态Web元素
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有