部署Dashboard

1. 通过yaml文件创建对象

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

通过下面的命令查看创建的Pod

kubectl get pod -n kubenertes-dashboard

在这里插入图片描述

2. 访问

2.1 通过API访问

https://10.10.10.112:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy

这时访问报403

解决方案如下
2.1.1 首先执行下面的命令:

mkdir dashboard_cert

2.1.2 创建kubernetes集群整数

grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk  '{print  $2}' | base64 -d >> kubecfg.crt```

**2.1.3  创建kubernetes私钥文件**

grep ‘client-key-data’ ~/.kube/config | head -n 1 | awk ‘{print $2}’ | base64 -d >> kubecfg.key```

2.1.4 执行

openssl pkcs12 -export  -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client"

2.1.5 将导出的kubecfg.p12文件导入浏览器

2.2 通过NodePort访问

** 修改recommended.yaml文件中的servicespec, 添加type: NodePort nodePort: 31003**

在这里插入图片描述

然后执行

Kubectl apply -f recommended.yaml

查看创建的Pod

kubectl get pod -n kubenertes-dashboard

2.3 创建账户

  • 创建名为dashboard-admin的账户
kubectl create serviceaccount dashboard-admin -n kube-system
  • 关联授权
kubectl create  clusterrolebinding  dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

###2.4 使用Token登录方式

获取创建账户的Secret的名称

kubectl get secret --all-namespaces | grep -I dashboard-admin

** 通过名称获取token**

kubectl describe secret/dashboard-admin-token-xxxx -n kube-system

在这里插入图片描述

2.5 使用kubeconfig文件登录

2.5.1 定义相关变量

server=https://10.10.10.112:6443
name=dashboard-admin
secretname=$(kubectl  get serviceaccount $name -o jsonpath="{.secrets[0].name}" -n kube-system)
ca= $(kubectl  get secret $secretname -o jsonpath='{.data.ca\crt}' -n kube-system)
token=$(kubectl  get secret $secretname  -n kube-system -o jsonpath='{.data.token}' | base64 --decode)
namespace=kube-system

2.5.2 导出kubeconfig文件

echo "
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
  cluster:
certificate-authority-data: ${ca}
server: ${server}
contexts:
- name: default-context
  context:
   cluster: default-cluster
   namespace: ${namespace}
   user: default-user
current-context: default-context
users:
- name: default-user
  user:
   token: ${token}
" > admin.kubeconfig

2.5.3 下载生成的文件, 登录时勾选即可

2.6 设置用户名、密码登录

** 2.6.1 备份kube-apiserver.yaml(重要)**

cp /etc/kubernetes/manifests/kube-apiserver.yaml  /etc/kubernetes/manifests/kube-apiserver.yaml-bake-20230131

2.6.2 新增密码

账户admin密码luckserver,唯一id是1
每行写一个账号,id不能重复

echo "admin,luckserver,1" > /etc/kubernetes/pki/basic_auth_file

** 2.6.3 修改apiserver.yaml**

vim /etc/kubernetes/manifests/kube-apiserver.yaml

加入这一行

- --token-auth-file=/etc/kubernetes/pki/basic_auth_file

保存退出
在这里插入图片描述

2.6.4 查看状态

apiserver.yaml被修改后会自动重启(十秒左右),查看状态有无报错

2.6.5 为admin用户绑定权限

  • admin绑定权限
kubectl create clusterrolebinding login-on-dashboard-with-cluster-admin --clusterrole=cluster-admin --user=admin
  • 查看绑定结果
kubectl get clusterrolebinding login-on-dashboard-with-cluster-admin 

** 2.6.6 修改recommended.yaml**

recommended.yaml 是dashboard相关部署文件。

- --token-ttl=21600
- --authentication-mode=basic

在这里插入图片描述

然后执行下面的命令更新对象

kubectl replace -f recommended.yaml
  • 浏览器查看

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值