如何从k8s集群外的机器上调用k8s的API(可调用多个k8s的apiserver)

因为公司项目需要,k8s的集群管理由其它人负责,而我们的自动化部署平台需要从k8s集群外的机器上调用k8s主节点的apiserver提供的API。

由于集群是用kubeadm安装的,证书验证齐全,那么,调用API时,只能通过kubectl proxy的方式进行调用管理。

操作步骤如下:

 

一,在集群外的机器上安装好kubectl的rpm包。

rpm -ivh kubectl-1.7.0-0.x86_64.rpm

二,将k8s上在安装过程中生成的config文件重命名,CP到操作用户的家目录的.kube目录下,config文件中包含的内容片段如下。

contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config

三,启动kubectl proxy,通过kubeconfig参数指定目标config文件(指定不同的config,可连接不同的k8s
apiserver),默认通过8001端口代理访问。

kubectl --kubeconfig="/x/.kube/config" proxy

四,如果有多个k8s的apiserver,指定不同的端口需要增加port参数。

kubectl --kubeconfig="/x/.kube/config"
--port=8079 proxy

五,可通过curl命令进行简单的测试。

curl http://127.0.0.1:8079/apis/extensions/v1beta1/namespaces/default/deployments/pc-saveapi

六,全版的api操作文档见如下网址(注意版本号)。

https://v1-7.docs.kubernetes.io/docs/api-reference/v1.7/

 

七,祝顺利。

时间: 2024-10-27 08:17:19

如何从k8s集群外的机器上调用k8s的API(可调用多个k8s的apiserver)的相关文章

hadoop 2.x 集群外机器通过webhdfs访问集群内文件,怎么实现?需要DNS吗?

问题描述 hadoop2.x集群外机器通过webhdfs访问集群内文件,用IP地址直接访问http://namenode(IP):50070/webhdfs/v1/test/xxx.txt?op=open,访问这个会重定向到某一个节点上例如:datanode1上.请问集群外的机器通过IP地址是否可以通过webhdfs访问hadoop集群内文件?这是不是本来就不可行的?因为有安全问题.如果要在集群外客户端通过web访问的话,有什么解决方案?目前有一种比较笨的办法,在客户端hosts文件中添加集群内

pig可以安装在hadoop集群外吗?

问题描述 大家好:我想知道pig可以安装在hadoop集群外远程访问集群吗?如果可以,yarn管理的hadoop集群该怎么配置pig的mapred.job.tracker=localhost:8021属性? 解决方案 解决方案二:把mapred.job.tracker=localhost:8021改为对应的MasterHostname解决方案三:但是如果是yarn管理的集群的话并没有tracker进程啊!

使用kubeadm安装k8s集群故障处理三则

最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考. 当然,所有方法都是看了log输出后,从网上搜索的方法. =============== Q,如何让kubeadm在安装过程中不联网? A:记得在kubeadm init过程中增加参数 --kubernetes-version=v1.7.0 Q,kubelet cgroup driver参数不一致

storm集群nimbus连接不上supervisor

问题描述 storm集群nimbus连接不上supervisor Ubuntu12.04系统,使用0.9.3版的storm通过单独的终端,启动:主机的nimbus和ui,2台从机上的supervisor,但在ui的网页上,supervisor summary的数量是0.

k8s 集群基本概念

一.概述: kubernetes是google开源的容器集群管理系统,提供应用部署.维护.扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母) 二.基本概念 Pod:若干相关容器的组合,Pod包含的容器运行在同一host上,这些容器使用相同的网络命令空间.IP地址和端口,相互之间能通过localhost来发现和通信.另外,这些容器还可共享一块存储卷空间.在k8s中创建,调度和管理的最小单位就是Pod,而非容器,Pod通过提供更高层次的抽象

Hadoop 集群搭建之机器选购

两个概念: IO受限 在从硬盘或者网络读取数据时遇到瓶颈 CPU受限 处理数据时遇到瓶颈 带宽受限 写入数据网络带宽不够,导致无法实施传递数据 常见业务划分 硬盘容量敏感型业务 这类业务对读写延迟以及吞吐量都没有很大的要求,唯一的需要就是硬盘容量.比如大多数离线读写分析业务,上层应用一般每隔一段时间批量写入大量数据,然后读取也是定期批量读取大量数据.特点:离线写.离线读,需求硬盘容量 带宽敏感型业务 这类业务大多数写入吞吐量很大,但对读取吞吐量没有什么要求.比如日志实时存储业务,上层应用通过ka

集群 ejb-websphere8.5.5上的应用通过EJB调用weblogic8.1上的应用,调用不通

问题描述 websphere8.5.5上的应用通过EJB调用weblogic8.1上的应用,调用不通 各位大牛好,目前项目遇到了一个比较棘手的问题,想请求一下各位大牛,万分感谢.我们的项目是部署在websphere8.5.5上,JDK是1.6,集群有4台服务器,通过EJB调用Weblogic8.1上的应用,JDK是1.4,投产后,有时4台服务器会有一台可以连通到weblogic上的应用,有时候都连不能连能,并且报org.omg.CORBA.ORBPackage.InvalidName: Loca

storm集群中链接不上工作节点

问题描述 分别用独立终端启动的nimbus,2个supervisor.storm0.9.3:storm.yaml如下:storm.zookeeper.servers:-"lmn"-"cwc"-"slave3"nimbus.host:"lmn"storm.zookeeper.port:2181storm.local.dir:"/usr/local/apache-storm-0.9.3/workdir"supe

web集群服务的负载均衡方案选择与实现

web 集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样.为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理.从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性. 高可靠性可以看作为系统的一种冗余设定.对于一个特定的请求,如果所申请的服务器不能进行处理的话,那么其他的服务器能不能对之进行有效的处理呢?对于一个高效的系统,如果一个Web服务器失败的话,其他的服务器