1 line
13 KiB
JavaScript
1 line
13 KiB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{106:function(t,e,a){t.exports=a.p+"assets/img/kuboard_qq.45e78dbf.png"},391:function(t,e,a){"use strict";a.r(e);var s=a(0),r=Object(s.a)({},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"安装-kuboard"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#安装-kuboard","aria-hidden":"true"}},[t._v("#")]),t._v(" 安装 Kuboard")]),t._v(" "),s("h2",{attrs:{id:"前提"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#前提","aria-hidden":"true"}},[t._v("#")]),t._v(" 前提")]),t._v(" "),s("p",[t._v("安装 Kuboard 时,假设您已经有一个 Kubernetes 集群")]),t._v(" "),s("p",[t._v("如果没有 Kubernetes 集群:")]),t._v(" "),s("ul",[s("li",[t._v("初学者, 请参考 "),s("a",{attrs:{href:"install-k8s"}},[t._v("安装 Kubernetes 单Master节点")])]),t._v(" "),s("li",[t._v("用于生产,请参考 "),s("a",{attrs:{href:"install-kubernetes"}},[t._v("安装 Kubernetes 高可用")])])]),t._v(" "),s("p",[t._v("碰到问题? "),s("strong",[t._v("在线提问")])]),t._v(" "),s("p",[s("img",{attrs:{src:a(106),alt:"Kuboard 兴趣群二维码"}})]),t._v(" "),s("h2",{attrs:{id:"兼容性"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#兼容性","aria-hidden":"true"}},[t._v("#")]),t._v(" 兼容性")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Kubernetes 版本")]),t._v(" "),s("th",[t._v("Kuboard 版本")]),t._v(" "),s("th",[t._v("兼容性")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("v1.15")]),t._v(" "),s("td",[t._v("v1.0.0-beta.13")]),t._v(" "),s("td",[s("span",{staticStyle:{"font-size":"24px"}},[t._v("😄")])]),t._v(" "),s("td",[t._v("已验证")])]),t._v(" "),s("tr",[s("td",[t._v("v1.14")]),t._v(" "),s("td",[t._v("v1.0.0-beta.13")]),t._v(" "),s("td",[s("span",{staticStyle:{"font-size":"24px"}},[t._v("😄")])]),t._v(" "),s("td",[t._v("已验证")])]),t._v(" "),s("tr",[s("td",[t._v("v1.13")]),t._v(" "),s("td",[t._v("v1.0.0-beta.13")]),t._v(" "),s("td",[s("span",{staticStyle:{"font-size":"24px"}},[t._v("😄")])]),t._v(" "),s("td",[t._v("已验证")])]),t._v(" "),s("tr",[s("td",[t._v("v1.12")]),t._v(" "),s("td",[t._v("v1.0.0-beta.13")]),t._v(" "),s("td",[s("span",{staticStyle:{"font-size":"24px"}},[t._v("😐")])]),t._v(" "),s("td",[t._v("Kubernetes Api v1.12 尚不支持 dryRun,"),s("br"),t._v("忽略Kuboard在执行命令时的参数校验错误,可正常工作")])]),t._v(" "),s("tr",[s("td",[t._v("v1.11")]),t._v(" "),s("td",[t._v("v1.0.0-beta.13")]),t._v(" "),s("td",[s("span",{staticStyle:{"font-size":"24px"}},[t._v("😐")])]),t._v(" "),s("td",[t._v("同上")])])])]),t._v(" "),s("h2",{attrs:{id:"安装"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#安装","aria-hidden":"true"}},[t._v("#")]),t._v(" 安装")]),t._v(" "),s("p",[s("strong",[t._v("获取并修改yaml文件")])]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("wget")]),t._v(" https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/kuboard.yaml\n")])])]),s("p",[t._v("修改文件 Kuboard.yaml 中 Ingress 的 host 为 kuboard.yourclustername.yourdomain.com")]),t._v(" "),s("p",[s("strong",[t._v("执行安装")])]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("kubectl apply -f kuboard.yaml \n")])])]),s("h2",{attrs:{id:"获取-token"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取-token","aria-hidden":"true"}},[t._v("#")]),t._v(" 获取 Token")]),t._v(" "),s("p",[t._v("您可以获得管理员用户、只读用户的Token")]),t._v(" "),s("Tabs",{attrs:{type:"border-card"}},[s("Tab",{attrs:{label:"管理员用户",lazy:""}},[s("p",[s("strong",[t._v("拥有的权限")])]),t._v(" "),s("ul",[s("li",[t._v("此Token拥有 ClusterAdmin 的权限,可以执行所有操作")])]),t._v(" "),s("p",[s("strong",[t._v("执行命令")])]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("kubectl -n kube-system describe secret "),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$(")]),t._v("kubectl -n kube-system get secret "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("grep")]),t._v(" kuboard-user "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("awk")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'{print "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v("}'")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v(")")])]),t._v(" \n")])])]),s("p",[s("strong",[t._v("输出")])]),t._v(" "),s("p",[t._v("取输出信息中 token 字段")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("div",{staticClass:"highlight-lines"},[s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("div",{staticClass:"highlighted"},[t._v(" ")]),s("br")]),s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("Name: admin-user-token-g8hxb\nNamespace: kube-system\nLabels: <none>\nAnnotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): Kuboard-user\n[kubernetes.io/service-account.uid](http://kubernetes.io/service-account.uid): 948bb5e6-8cdc-11e9-b67e-fa163e5f7a0f\n\nType: [kubernetes.io/service-account-token](http://kubernetes.io/service-account-token)\n\nData\n====\nca.crt: 1025 bytes\nnamespace: 11 bytes\ntoken: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWc4aHhiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDhiYjVlNi04Y2RjLTExZTktYjY3ZS1mYTE2M2U1ZjdhMGYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.DZ6dMTr8GExo5IH_vCWdB_MDfQaNognjfZKl0E5VW8vUFMVvALwo0BS-6Qsqpfxrlz87oE9yGVCpBYV0D00811bLhHIg-IR_MiBneadcqdQ_TGm_a0Pz0RbIzqJlRPiyMSxk1eXhmayfPn01upPdVCQj6D3vAY77dpcGplu3p5wE6vsNWAvrQ2d_V1KhR03IB1jJZkYwrI8FHCq_5YuzkPfHsgZ9MBQgH-jqqNXs6r8aoUZIbLsYcMHkin2vzRsMy_tjMCI9yXGiOqI-E5efTb-_KbDVwV5cbdqEIegdtYZ2J3mlrFQlmPGYTwFI8Ba9LleSYbCi4o0k74568KcN_w\n")])])])]),t._v(" "),s("Tab",{attrs:{label:"只读用户",lazy:""}},[s("p",[s("strong",[t._v("拥有的权限")])]),t._v(" "),s("ul",[s("li",[t._v("view 可查看名称空间的内容")]),t._v(" "),s("li",[t._v("system:node 可查看节点信息")]),t._v(" "),s("li",[t._v("system:persistent-volume-provisioner 可查看存储类和存储卷声明的信息")])]),t._v(" "),s("p",[s("strong",[t._v("适用场景")])]),t._v(" "),s("p",[t._v("只读用户不能对集群的配置执行修改操作,非常适用于将开发环境中的 Kuboard 只读权限分发给开发者,以便开发者可以便捷地诊断问题")]),t._v(" "),s("p",[s("strong",[t._v("执行命令")])]),t._v(" "),s("p",[t._v("执行如下命令可以获得 "),s("span",{staticStyle:{color:"#F56C6C","font-weight":"500"}},[t._v("只读用户")]),t._v(" 的 Token")]),t._v(" "),s("div",{staticClass:"language-bash extra-class"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[t._v("kubectl -n kube-system describe secret "),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$(")]),t._v("kubectl -n kube-system get secret "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("grep")]),t._v(" kuboard-viewer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("awk")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'{print "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$1")]),t._v("}'")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v(")")])]),t._v(" \n")])])]),s("p",[s("strong",[t._v("输出")])]),t._v(" "),s("p",[t._v("取输出信息中 token 字段")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("div",{staticClass:"highlight-lines"},[s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("br"),s("div",{staticClass:"highlighted"},[t._v(" ")]),s("br")]),s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("Name: admin-user-token-g8hxb\nNamespace: kube-system\nLabels: <none>\nAnnotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): Kuboard-viewer\n[kubernetes.io/service-account.uid](http://kubernetes.io/service-account.uid): 948bb5e6-8cdc-11e9-b67e-fa163e5f7a0f\n\nType: [kubernetes.io/service-account-token](http://kubernetes.io/service-account-token)\n\nData\n====\nca.crt: 1025 bytes\nnamespace: 11 bytes\ntoken: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWc4aHhiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDhiYjVlNi04Y2RjLTExZTktYjY3ZS1mYTE2M2U1ZjdhMGYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.DZ6dMTr8GExo5IH_vCWdB_MDfQaNognjfZKl0E5VW8vUFMVvALwo0BS-6Qsqpfxrlz87oE9yGVCpBYV0D00811bLhHIg-IR_MiBneadcqdQ_TGm_a0Pz0RbIzqJlRPiyMSxk1eXhmayfPn01upPdVCQj6D3vAY77dpcGplu3p5wE6vsNWAvrQ2d_V1KhR03IB1jJZkYwrI8FHCq_5YuzkPfHsgZ9MBQgH-jqqNXs6r8aoUZIbLsYcMHkin2vzRsMy_tjMCI9yXGiOqI-E5efTb-_KbDVwV5cbdqEIegdtYZ2J3mlrFQlmPGYTwFI8Ba9LleSYbCi4o0k74568KcN_w\n")])])])])],1),t._v(" "),s("h2",{attrs:{id:"访问-kuboard"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#访问-kuboard","aria-hidden":"true"}},[t._v("#")]),t._v(" 访问 Kuboard")]),t._v(" "),s("p",[t._v("您可以通过NodePort、port-forward、域名三种方式当中的任意一种访问 Kuboard")]),t._v(" "),s("Tabs",{attrs:{type:"border-card"}},[s("Tab",{attrs:{label:"通过NodePort访问",lazy:""}},[s("p",[t._v("Kuboard Service 使用了 NodePort 的方式暴露服务,NodePort 为 32567;您可以按如下方式访问 Kuboard。(可以使用集群中任意节点的 IP 地址)")]),t._v(" "),s("p",[s("code",[t._v("http://any-of-your-node-ip:32567/")])]),t._v(" "),s("p",[t._v("输入前一步骤中获得的 token,可进入 "),s("strong",[t._v("Kuboard 集群概览页")])]),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",[t._v("您也可以修改 Kuboard.yaml 文件,使用自己定义的 NodePort 端口号")])])]),t._v(" "),s("Tab",{attrs:{label:"通过port-forward访问",lazy:""}},[s("p",[t._v("在您的客户端电脑中执行如下命令")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[t._v("kubectl port-forward service/Kuboard "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8080")]),t._v(":80 -n kube-system\n")])])]),s("p",[t._v("在浏览器打开链接 (请使用 kubectl 所在机器的IP地址)")]),t._v(" "),s("p",[s("code",[t._v("http://localhost:8080")])]),t._v(" "),s("p",[t._v("输入前一步骤中获得的 token,可进入 "),s("strong",[t._v("Kuboard 集群概览页")])]),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",[t._v("需要您先完成 "),s("a",{attrs:{href:"install-kubectl"}},[t._v("从客户端电脑远程管理 Kubernetes")]),t._v(" 的配置")])])]),t._v(" "),s("Tab",{attrs:{label:"通过域名访问",lazy:""}},[s("p",[t._v("在浏览器打开链接 (请使用前面安装 Kuboard 时已修改的域名)")]),t._v(" "),s("p",[s("code",[t._v("http://kuboard.yourclustername.yourdomain.com")])]),t._v(" "),s("p",[t._v("输入前一步骤中获得的 token,可进入 "),s("strong",[t._v("Kuboard 集群概览页")])]),t._v(" "),s("div",{staticClass:"tip custom-block"},[s("p",[t._v("需要您")]),t._v(" "),s("ul",[s("li",[t._v("正确安装 Ingress Controller")]),t._v(" "),s("li",[t._v("将您所使用的域名指向 Kubernetes 中的一个 Worker 节点(或者Ingress Controller所在机器的IP,不同类型的Ingress Controller配置不同)")])])])])],1),t._v(" "),s("p",[s("strong",[t._v("下一步")])]),t._v(" "),s("ul",[s("li",[s("p",[t._v("使用 Kuboard 工作负载编辑器 "),s("a",{attrs:{href:"/guide/example/busybox"}},[t._v("创建 busybox")]),t._v(" (10分钟)")])]),t._v(" "),s("li",[s("p",[t._v("尝试 Kuboard 设计的其他 example "),s("a",{attrs:{href:"/guide/index"}},[t._v("使用 Kuboard")])])])])],1)},[],!1,null,null,null);e.default=r.exports}}]); |