k8s APIservice

本文详细解析了APIserver如何通过APIservicecontroller监控并创建APIservice资源,进而实现请求的代理与响应处理流程。

他是通过创建kind:APIservice来创建的;APIserver通过创建APIservice controller来进行监控创建APIservice资源,然后通过注册path转到proxy,proxy通过获取APIservice指定的server,获取其对应endpoint,获取到相应的host。通过将请求发送到对应pod获得返回结果,然后将结果copy到请求的返回结果,完成功能。

访问Kubernetes API的方法如下: 1. **使用kubectl proxy访问**:包括本地监听与网络监听 [^2]。 2. **直接访问API**: - **获取集群名称和API地址** [^2]。 - **使用serviceaccount来访问**:Pod自身连接API Server时使用ServiceAccount,生产中使用居多。kubectl get sa -n 你的namespace可查看默认的serviceaccount,“system:serviceaccount:xxx:default”是pod内部用到的默认serviceaccount,xxx代表namespace,default是namespace的默认serviceaccount名字,前面“system:serviceaccount”代表k8s中的serviceaccount用户组 [^2][^3][^5]。 - **使用useraccount来访问**:当Pod中的进程需要访问API Server,人去访问或编写的脚本去访问时,使用的账号为UserAccount [^3]。 3. **使用代理访问**:要将官方Kubernetes客户端​kubectl​与代理一起使用,可在​~/.kube/config​文件中为相关的​cluster​条目设置​proxy-url​元素。例如: ```yaml apiVersion: v1 clusters: - cluster: certificate - authority - data: LRMEMMW2 # 为了便于阅读缩短 server: https://localhost # 上图中的“Kubernetes API” proxy - url: socks5://localhost:1080 # 上图中的“SSH SOCKS5代理”(内置DNS解析) name: default contexts: - context: cluster: default user: default name: default current - context: default kind: Config preferences: {} users: - name: default user: client - certificate - data: LS0tLS1CR== # 为了便于阅读缩短 client - key - data: LS0tLS1CRUdJT= # 为了便于阅读缩短 ``` [^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值