惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
B
Blog
L
LangChain Blog
Y
Y Combinator Blog
美团技术团队
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
量子位
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
D
Docker
小众软件
小众软件
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
IT之家
IT之家

博客园 - 勤劳の洗碗机

pyinstaller打包exe故障解析 k8s 之HPA应用 statefulset 及storageclass hadoop 伪分布式 完全分布式 及HA部署 LDAP部署及实践 docker 制作自己的mysql镜像 k8s 压测工具之perf-test mysql相关(三)、主从复制 shell执行mysql脚本 分布式minio image-syncer 误删libc.so.6文件补救 docker 使用bind 动态扩容pvc k8s备份工具之velero jmeter使用 docker 制作ssh镜像 docker 制作自定义的nginx镜像 docker部署sharding-proxy
curl 访问k8s api
勤劳の洗碗机 · 2020-12-02 · via 博客园 - 勤劳の洗碗机

https://www.cnblogs.com/tylerzhou/p/11094872.html

下载jq 

chmod +x jq
mv jq /usr/bin/

启用非安全端口

kubectl proxy --port=8080

 查看默认namespace pod列表

 curl localhost:8080/api/v1/namespaces/default/pods/ | jq -r '.items[].metadata.name'

HTTPS访问

创建一个namespace

创建role

kubectl create role pods-reader --verb=get,list,watch --resource=pods --namespace=test

创建rolebinding

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: default-role-binding
  namespace: test
subjects:
  - kind: ServiceAccount 
    name: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

创建一个带有curl的测试pod

apiVersion: apps/v1
kind: Deployment
metadata:
  name: centos
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      name: centos
  template:
    metadata:
      labels:
        name: centos
    spec:
      nodeName: master
      containers:
      - image: centos:7
        imagePullPolicy: Never
        name: centos
        command:
        - /bin/sh
        - -c
        - tail -f /dev/null

结果测试:

curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"  https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/namespaces/$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)/pods

或者

TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H "Authorization: Bearer $TOKEN" -s  https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api/v1/namespaces/default/pods/

使用已有的token访问

TOKEN=$(kubectl describe secrets $(kubectl get secrets -n kube-system |grep admin |cut -f1 -d ' ') -n kube-system |grep -E '^token' |cut -f2 -d':'|tr -d '\t'|tr -d ' ')

APISERVER=$(kubectl config view |grep server|cut -f 2- -d ":" | tr -d " ")

访问kube-system下pod

curl -H "Authorization: Bearer $TOKEN" $APISERVER/api/v1/namespaces/default/pods/ --insecure