kubernetes(k8s) API调用方式

文章目录

  • 1. kubectl命令行
  • 2. kubectl反向代理
  • 3. 不安全端口8080
  • 4. 安全端口6443
    • 4.1. 创建管理员用户
    • 4.2. 用户授权
    • 4.3. 获取token
    • 4.4. 访问测试

1. kubectl命令行

// 在 master 节点上直接输入 kubectl 相关命令即可,输入 kubectl --help 查看相关命令
// 示例:获取当前所有 node 节点
kubctl get node

在这里插入图片描述

2. kubectl反向代理

  • kubectl 既作为访问api server的命令行客户端工具,又可以作为反向代理,指定监听端口,通过http的方式对api server的操作
// 在 master 节点上,输入如下命令(默认监听端口8001)
kubectl proxy

// 如果需要指定端口,则添加选项 --port
kubectl proxy --port=8080
  • 访问测试
    kubernetes(k8s) API调用方式_第1张图片

3. 不安全端口8080

  • 使用http协议
  • 默认不开启,需要修改配置文件开启
// 1. 进入 /etc/kubernetes/manifests/ 目录
cd /etc/kubernetes/manifests/

// 2. 修改 kube-apiserver.yaml
vim kube-apiserver.yaml

// 3. 找到配置选项 –insecure-port ,改为8080
–insecure-port=8080

// 4. 添加配置选项
–insecure-bind-address=0.0.0.0

// 5. 重启 kubelet
systemctl daemon-reload
systemctl restart kubelet
  • 访问测试
    kubernetes(k8s) API调用方式_第2张图片

4. 安全端口6443

  • https 协议
  • 需要获取 token 后,在请求头中加上token方可访问

4.1. 创建管理员用户

  • 编写CreateServiceAccount.yaml文件, 内容如下
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
  • 创建用户命令
kubectl create -f CreateServiceAccount.yaml
  • 查看创建用户的命令
kubectl -n kube-system get sa

4.2. 用户授权

  • 编写RoleBinding.yaml文件,给于cluster-admin角色,文件内容如下
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system
  • 给用户授权,执行命令
kubectl create -f RoleBinding.yaml

4.3. 获取token

  • 获取输出中的 name,假如输出name为 admin-user-token-7kc6n
kubectl get secret -n kube-system | grep admin
  • 将name填入下方,得到token
kubectl  describe secret admin-user-token-7kc6n -n kube-system |grep token

4.4. 访问测试

kubernetes(k8s) API调用方式_第3张图片

你可能感兴趣的:(kubernetes,docker,linux,容器,云原生)