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
- 访问测试
3. 不安全端口8080
// 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
- 访问测试
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
kubectl describe secret admin-user-token-7kc6n -n kube-system |grep token
4.4. 访问测试