kubeadm安装的k8s集群默认需要用户登陆认证,无法直接使用命令curl访问。所以首先的第一步就是获取token。

先找到k8s集群中的dns组件coredns,之前的版本使用的是kube-dns。

[root@k8s-master ~]# kubectl -n kube-system get sa coredns -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: "2019-09-26T12:24:32Z"
name: coredns
namespace: kube-system
resourceVersion: "189"
selfLink: /api/v1/namespaces/kube-system/serviceaccounts/coredns
uid: 5c170ec0-be0e-402b-ac34-aaf08b70a7fb
secrets:

获取dns上token信息并转化格式

[root@k8s-master ~]# kubectl get secret coredns-token-pc955 -n kube-system -o jsonpath={".data.token"} | base64 -d                             eyJhbGciOiJSUzI1NiIsImtpZCI6IjRrbjlkTHBNQWo3NWF2VHRFbGJUT2piOGJzbVVXbng0OGxidEE0WnoyLUEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjb3JlZG5zLXRva2VuLXBjOTU1Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNvcmVkbnMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1YzE3MGVjMC1iZTBlLTQwMmItYWMzNC1hYWYwOGI3MGE3ZmIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y29yZWRucyJ9.b1HVmLW8V4DpWENArn9tSr-7krevvXAdbuYyqQUeJRHYcjne8epshPYJlU78MsMT1or_5J9ED-p9AV-a5dugJS0DmtmIslmSBKxuD43ldVOW97FXuAhJ3LCGUKsx91Iq7X_Q7Cfjs-WgvlHE7vFhvVYBH_1Bf7hmbeMZtIFqJRBYapPtzM-pAZzuLTLV2unFfGOH9W2lPiZ83qdKlLWjCZuqUSwlyk686cQVgOXLjA_nyeDvUYjpLXkE4D_oFgTkAokCZrtBhdYVlDf-8dNoa5rsFSMYVK9GBNA_asLIuReF3SjQ7WmUamicER_Iq4ZM_UOn-DQszVHkOqUcyS3mAQ

得到的一长串字符就是token,使用curl访问apiserver带上token就可以了

[root@k8s-master ~]# curl -k -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjRrbjlkTHBNQWo3NWF2VHRFbGJUT2piOGJzbVVXbng0OGxidEE0WnoyLUEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJjb3JlZG5zLXRva2VuLXBjOTU1Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImNvcmVkbnMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1YzE3MGVjMC1iZTBlLTQwMmItYWMzNC1hYWYwOGI3MGE3ZmIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06Y29yZWRucyJ9.b1HVmLW8V4DpWENArn9tSr-7krevvXAdbuYyqQUeJRHYcjne8epshPYJlU78MsMT1or_5J9ED-p9AV-a5dugJS0DmtmIslmSBKxuD43ldVOW97FXuAhJ3LCGUKsx91Iq7X_Q7Cfjs-WgvlHE7vFhvVYBH_1Bf7hmbeMZtIFqJRBYapPtzM-pAZzuLTLV2unFfGOH9W2lPiZ83qdKlLWjCZuqUSwlyk686cQVgOXLjA_nyeDvUYjpLXkE4D_oFgTkAokCZrtBhdYVlDf-8dNoa5rsFSMYVK9GBNA_asLIuReF3SjQ7WmUamicER_Iq4ZM_UOn-DQszVHkOqUcyS3mAQ" https://127.0.0.1:6443/api
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "192.168.10.20:6443"
}
]
}

-k 表示忽略证书验证。

登陆并访问k8s的apiserver的更多相关文章

  1. 在kubernetes 集群内访问k8s API服务

    所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用 ...

  2. [django]用户认证中只允许登陆用户访问(网页安全问题)

    当设计一个重要网页时,一般要求未从登陆界面访问的用户不能进入其他页面,那么需要如何设置呢? 如下 django中的url.py urlpatterns = [    url(r'^$', 'login ...

  3. K8S学习笔记之修改K8S的api-server证书

    K8S的api-server证书包含很多IP和域名,有时候后期才发现证书内有错误,需要重新生成该证书. 修改server-csr.json,修改后基于原来的ca证书重新生成server.perm  s ...

  4. K8S的APISERVER,应用了HTTPS之后,命令行如何访问?

    用命令行总是很麻烦,因为要自定义一些证书的位置....... curl https://1.2.3.1:443/api/v1/nodes \ --cacert /etc/kubernetes/pki/ ...

  5. [置顶] 使用kube-proxy让外部网络访问K8S service的ClusterIP

    配置方式 kubernetes版本大于或者等于1.2时,外部网络(即非K8S集群内的网络)访问cluster IP的办法是: 修改master的/etc/kubernetes/proxy,把KUBE_ ...

  6. k8s记录-使用kube-proxy让外部网络访问K8S service的ClusterIP (转载)

    配置方式 kubernetes版本大于或者等于1.2时,外部网络(即非K8S集群内的网络)访问cluster IP的办法是:修改master的/etc/kubernetes/proxy,把KUBE_P ...

  7. 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能

    在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能. 项目是用springMVC+spring+hibernate实现 (和这个没有多大关系) 第一步: 首先 ...

  8. 让外部网络访问K8S service的四种方式

    本文基于kubernetes 1.5.2版本编写 kube-proxy+ClusterIP kubernetes版本大于或者等于1.2时,配置: 修改master的/etc/kubernetes/pr ...

  9. Struts2 利用拦截器 interceptor 控制登陆和访问权限

    最近学习了Struts2的登录和权限控制用到的是拦截器,需要在struts.xml中配置,每个action都默认的继承defaultStack,如果你用了别的拦截器,还需要手动引入defaultSta ...

随机推荐

  1. Redis存储List

    list中数据可以重复,查询快,增删慢. 存储结构: 1.向List存取数据: 查询list中的全部元素: 第一个进入a,第二个进入b,并将a向后移一位. 上图为从右边插入元素的情况. 2.从两头取出 ...

  2. SVN 常用 查看日志

    1.日志查看,有时候会遇到查看一下之前改过的代码,或者恢复某某某个版本,这时就需要用到SVN的查看日志功能了,如图 2.日志列表,这里能看到各个版本的所有信息,包含了版本号 提交人 提交时间 提交时所 ...

  3. “知乎杯”2018 CCF 大学生计算机系统与程序设计竞赛 贪心算法(greedy)

    --> 贪心算法 1)题解 •        分别用V0.V1和V>=2表示度为0.1以及至少为2的顶点集合 •        对于每个顶点,维护三个属性: •        degree ...

  4. 【luoguP2999】 [USACO10NOV]巧克力牛奶Chocolate Milk

    题目链接 考虑每条路径都经过的一个点,它可以到达每个出度为零点(终点),且每个入读为零点(起点)都能到达它, 拓扑排序记录下每个结点能到达的出度为零点的个数和沿反边能到达的入读为零点个数,判断是否等于 ...

  5. java学习笔记(5) 控制语句、键盘输入

    控制语句: java控制可以分为7种: *控制选择结构语句: *if  if else *switch *控制循环结构语句: *for *while *do while *改变控制语句顺序: *bre ...

  6. 如果判断条件过多,可以直接在computed里面去返回需要判断的数据

    bad <div class="offer-item_margin" v-show="offer.supplierName || offer.supplierSto ...

  7. 【AE软件】视频添加字幕

    1.导入视频 2.将视频拖入大屏幕 3.在下面点击右键——新建——文本 4.文字属性设置

  8. 关于高负载服务器Kernel的ipv4的TCP参数说明及优化

    net.ipv4.tcp_mem 内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes,可用命令查看: #getconf PAGESIZE 4096 net.ipv4.t ...

  9. python练习:寒冰猴子狐狸,猫狗咬架

    python练习:寒冰猴子狐狸,猫狗咬架 一,寒冰猴子狐狸 class Person: def __init__(self, na, gen, age, fig): self.name = na se ...

  10. mysql死锁(锁与事务)

    线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”. Oh, My God! 是死锁问题.尽管报错不多,对性能目前看来 ...