• 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群- 四 部署 dashboard 2.x


    详细信息请参考本人的git仓库 地址为 https://gitee.com/salmon_163/kubernetes-ha-kubeadm.git

    1. 部署dashboard 2.x版本

    Dashboard 分为 1.x版本 和 2.x版本, k8s 使用的是1.18.2 故部署2.x版本的

    # dashboard 2.x版本的部署
    # 上传dashboard配置
    $ scp target/addons/recommended.yaml <user>@<node-ip>:/etc/kubernetes/addons/
    # 进行部署
    $ kubectl apply -f /etc/kubernetes/addons/recommended.yaml
    # 查看服务运行情况
    $ kubectl get deployment kubernetes-dashboard -n kubernetes-dashboard
    $ kubectl -n kubernetes-dashboard get pods -o wide
    $ kubectl get services kubernetes-dashboard -n kubernetes-dashboard
    $ netstat -ntlp|grep 30005
    
    # 1. 下载配置文件, 可能需要FQ,可以将内容进行拷贝处理
    #  https://github.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml 拷贝出文件内容
    $ wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml
    
    # 2. 修改配置文件(大约在32行Service段) 在spec 中加入 type: NodePort, nodePort: 30005 配置
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
    spec:
      type: NodePort
      ports:
        - port: 443
          targetPort: 8443
          nodePort: 30005
      selector:
        k8s-app: kubernetes-dashboard
    
    # 2. 进行部署
    $ kubectl apply -f recommended.yaml
    

    2. 访问dashboard

    为了集群安全,从 1.7 开始,dashboard 只允许通过 https 访问,我们使用nodeport的方式暴露服务,可以使用 https://NodeIP:NodePort 地址访问
    关于自定义证书
    默认dashboard的证书是自动生成的,肯定是非安全的证书,如果大家有域名和对应的安全证书可以自己替换掉。使用安全的域名方式访问dashboard。
    在dashboard-all.yaml中增加dashboard启动参数,可以指定证书文件,其中证书文件是通过secret注进来的。

    - –tls-cert-file
    - dashboard.cer
    - –tls-key-file
    - dashboard.key

    3. 登录dashboard 2.x

    Dashboard 默认只支持 token 认证,所以如果使用 KubeConfig 文件,需要在该文件中指定 token,我们这里使用token的方式登录

    # 创建service account
    $ kubectl create sa dashboard-admin -n kubernetes-dashboard
    
    # 创建角色绑定关系
    $ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
    
    # 查看dashboard-admin的secret名字
    $ ADMIN_SECRET=$(kubectl get secrets -n kubernetes-dashboard | grep dashboard-admin | awk '{print $1}')
    
    # 打印secret的token
    $ kubectl describe secret -n kubernetes-dashboard ${ADMIN_SECRET} | grep -E '^token' | awk '{print $2}'
    

    4. 谷歌浏览器访问

    用谷歌浏览器(chrome)访问 https://NodeIP:30005 地址, 此时浏览器打开后提示证书不授信,怎么办呢? 马上揭晓答案 图片后面的问题请认真体会 呵呵
    如下图
    Image
    鼠标点击当前页面任意位置(就是那个图片所示的页面),让页面处于最上层(切记一定要处于当前活动的窗体) 直接键盘敲入这11个字符:thisisunsafe 奇迹就会出现

  • 相关阅读:
    VB.NET与C# 语法区别展示
    利用 ASP.NET 的内置功能抵御 Web 攻击 (1)
    .NET 中获取调用方法名
    C# 6.0 的那些事
    .NET基础之自定义泛型
    汽车学习---汽车知识大全【all】
    Django学习---抽屉热搜榜分析【all】
    Python 系统学习梳理_【All】
    Python学习---装饰器/迭代器/生成器的学习【all】
    Java 系统学习梳理_【All】
  • 原文地址:https://www.cnblogs.com/itgiser/p/12984621.html
Copyright © 2020-2023  润新知