安装 kubernetes dashboard
@ -143,7 +143,8 @@ module.exports = {
|
||||
title: '简介',
|
||||
collapsable: false,
|
||||
children: [
|
||||
''
|
||||
'',
|
||||
'share-coder'
|
||||
]
|
||||
}, {
|
||||
title: '概念',
|
||||
@ -199,6 +200,7 @@ module.exports = {
|
||||
children: [
|
||||
'install-kubectl',
|
||||
// 'config-kubectl',
|
||||
'install-k8s-dashboard',
|
||||
'install-dashboard',
|
||||
'install-dashboard-upgrade'
|
||||
]
|
||||
@ -406,10 +408,18 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
title: 'Kubernetes 高级',
|
||||
collapsable: false,
|
||||
path: 'k8s-advanced/',
|
||||
collapsable: true,
|
||||
children: [
|
||||
|
||||
{
|
||||
title: 'Kubernetes 日志',
|
||||
collapsable: true,
|
||||
children: [
|
||||
'k8s-advanced/logs/',
|
||||
'k8s-advanced/logs/basic',
|
||||
'k8s-advanced/logs/node',
|
||||
'k8s-advanced/logs/cluster',
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
|
After Width: | Height: | Size: 162 KiB |
BIN
install/install-k8s-dashboard.assets/overview.png
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
install/install-k8s-dashboard.assets/signin.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
111
install/install-k8s-dashboard.md
Normal file
@ -0,0 +1,111 @@
|
||||
---
|
||||
vssueId: 126
|
||||
description: Kubernetes升级_使用kubeadm升级K8S集群_到Kubernetes_v1.15.3
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes Dashboard,安装Kubernetes Dashboard,K8S Dashboard,K8S管理界面
|
||||
---
|
||||
|
||||
# 安装Kubernetes Dashboard
|
||||
|
||||
> 参考文档: [Web UI (Dashboard)](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/)
|
||||
|
||||
Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。使用 Kubernetes Dashboard,您可以:
|
||||
* 向 Kubernetes 集群部署容器化应用
|
||||
* 诊断容器化应用的问题
|
||||
* 管理集群的资源
|
||||
* 查看集群上所运行的应用程序
|
||||
* 创建、修改Kubernetes 上的资源(例如 Deployment、Job、DaemonSet等)
|
||||
* 展示集群上发生的错误
|
||||
|
||||
例如:您可以伸缩一个 Deployment、执行滚动更新、重启一个 Pod 或部署一个新的应用程序
|
||||
|
||||
以上文字翻译自 Kubernetes 官方文档。Kuboard 的定位和 Dashboard 是相似的,**主要的区别** 在于:
|
||||
* Kuboard 关注微服务参考架构的视角对界面进行组织,参考 [Kuboard 简介](/overview/share-coder.html)
|
||||
* Kuboard 中,不需要手工编写 YAML 文件,进一步降低 K8S 使用难度,提高便捷性
|
||||
* Kuboard 可以导出整个微服务架构的部署信息,并在新的名称空间/集群导入配置信息
|
||||
* Kuboard 的一个发展方向是,提供内建的 [监控套件](/guide/example/monitor.html)(目前的全局监控套件成熟度比较高)
|
||||
|
||||
为了帮助大家选择适合自己的工具,本文将详细描述如何在 Kubernetes 集群中安装 Kubernetes Dashboard。
|
||||
|
||||
## 安装 Kubernetes Dashboard
|
||||
|
||||
执行如下命令,以安装 Kubernetes Dashboard
|
||||
|
||||
``` sh
|
||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
|
||||
```
|
||||
|
||||
## 访问 Kubernetes Dashboard UI
|
||||
|
||||
Kubernetes Dashboard 默认部署时,只配置了最低权限的 RBAC。当前,只支持使用 Bearer Token登录。
|
||||
|
||||
* 创建 Service Account
|
||||
|
||||
``` yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: admin-user
|
||||
namespace: kubernetes-dashboard
|
||||
```
|
||||
|
||||
* 创建 ClusterRoleBinding
|
||||
|
||||
使用 `kubeadm` 安装集群时,默认创建了 ClusterRole `cluster-admin`。此时我们可以直接为刚才的 ServiceAccount 创建 ClusterRoleBinding。
|
||||
|
||||
``` yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: admin-user
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: admin-user
|
||||
namespace: kubernetes-dashboard
|
||||
```
|
||||
|
||||
* 获取Bearer Token
|
||||
|
||||
执行命令:
|
||||
```sh
|
||||
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
|
||||
```
|
||||
|
||||
输出信息如下所示:
|
||||
|
||||
``` {13}
|
||||
Name: admin-user-token-v57nw
|
||||
Namespace: kubernetes-dashboard
|
||||
Labels: <none>
|
||||
Annotations: kubernetes.io/service-account.name: admin-user
|
||||
kubernetes.io/service-account.uid: 0303243c-4040-4a58-8a47-849ee9ba79c1
|
||||
|
||||
Type: kubernetes.io/service-account-token
|
||||
|
||||
Data
|
||||
====
|
||||
ca.crt: 1066 bytes
|
||||
namespace: 20 bytes
|
||||
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXY1N253Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwMzAzMjQzYy00MDQwLTRhNTgtOGE0Ny04NDllZTliYTc5YzEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.Z2JrQlitASVwWbc-s6deLRFVk5DWD3P_vjUFXsqVSY10pbjFLG4njoZwh8p3tLxnX_VBsr7_6bwxhWSYChp9hwxznemD5x5HLtjb16kI9Z7yFWLtohzkTwuFbqmQaMoget_nYcQBUC5fDmBHRfFvNKePh_vSSb2h_aYXa8GV5AcfPQpY7r461itme1EXHQJqv-SN-zUnguDguCTjD80pFZ_CmnSE1z9QdMHPB8hoB4V68gtswR1VLa6mSYdgPwCHauuOobojALSaMc3RH7MmFUumAgguhqAkX3Omqd3rJbYOMRuMjhANqd08piDC3aIabINX6gP5-Tuuw2svnV6NYQ
|
||||
```
|
||||
|
||||
* 执行 `kubectl proxy` 命令
|
||||
|
||||
您必须能够在自己的笔记本(工作电脑)上运行 kubectl 并访问您的集群。可参考文档 [安装Kubectl](./install/install-kubectl.html)
|
||||
|
||||
访问路径: `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`
|
||||
|
||||
* 将上一个步骤中获得的 Token 输入到登录界面中,点击 **Sign in** 按钮,完成登录
|
||||
|
||||

|
||||
|
||||
* 登录成功后,界面如下图所示:
|
||||
|
||||

|
||||
|
||||
:tada: :tada: :tada: Have Fun!
|
||||
@ -117,7 +117,7 @@ export default {
|
||||
**网上那么多 Kubernetes 安装文档,为什么这篇文档更有参考价值?**
|
||||
|
||||
* **众多网友验证**
|
||||
* 每天有超过 200 人参照此文档完成 Kubernetes 安装
|
||||
* 每天有超过 300 人参照此文档完成 Kubernetes 安装
|
||||
* 不断有网友对安装文档提出改进意见
|
||||
|
||||
* **持续更新和完善**
|
||||
|
||||
@ -129,7 +129,7 @@ yum list --showduplicates kubeadm --disableexcludes=kubernetes
|
||||
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
|
||||
```
|
||||
|
||||
* 手动升级CNI插件
|
||||
<!-- * 手动升级CNI插件 -->
|
||||
|
||||
### 升级其他 master 节点
|
||||
|
||||
@ -176,6 +176,8 @@ yum list --showduplicates kubeadm --disableexcludes=kubernetes
|
||||
* 执行以下命令,将节点标记为 `不可调度的` 并驱逐节点上所有的 Pod,
|
||||
|
||||
``` sh
|
||||
# 在可以执行 kubectl 命令的位置执行(通常是第一个 master节点)
|
||||
# $NODE 代表一个变量,实际执行时,请用您的节点名替换
|
||||
kubectl drain $NODE --ignore-daemonsets
|
||||
```
|
||||
|
||||
|
||||
@ -86,9 +86,10 @@ meta:
|
||||
|
||||
## **Kubernetes 高级**
|
||||
|
||||
* Kubernetes 日志可视化
|
||||
* [Kubernetes 日志](/learning/k8s-advanced/logs/)
|
||||
* Kubernetes 监控
|
||||
* Kubernetes 联邦
|
||||
* 扩展 Kubernetes
|
||||
|
||||
## **Kubernetes 实战**
|
||||
|
||||
|
||||
12
learning/k8s-advanced/logs/basic.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
vssueId: 125
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了如何使用kubectl_Kuboard查看和浏览Kubernetes上的节点_容器组_部署等信息_并依据这些信息作出问题诊断
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,K8S教程,日志,Logging
|
||||
---
|
||||
|
||||
# 基本的日志
|
||||
|
||||
正在撰写...
|
||||
12
learning/k8s-advanced/logs/cluster.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
vssueId: 125
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了如何使用kubectl_Kuboard查看和浏览Kubernetes上的节点_容器组_部署等信息_并依据这些信息作出问题诊断
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,K8S教程,日志,Logging
|
||||
---
|
||||
|
||||
# 集群级别的日志
|
||||
|
||||
正在撰写...
|
||||
20
learning/k8s-advanced/logs/index.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
vssueId: 125
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了如何使用kubectl_Kuboard查看和浏览Kubernetes上的节点_容器组_部署等信息_并依据这些信息作出问题诊断
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,K8S教程,日志,Logging
|
||||
---
|
||||
|
||||
# 日志架构
|
||||
|
||||
当集群中出现任何问题时,应用程序日志和系统日志是非常有效的定位问题的手段,可以让我们知道集群中正在发生的事情。绝大多数的应用程序都有日志机制,主流的容器引擎也都支持某种形式的日志。对容器化应用程序来说,最简单也是被采纳得最多的一种日志方式是,将日志写入到标准输出流(例如,Java中的 System.out.println() 语句,或 log4j 中的 Console Appender)和标准错误流里(例如,Java中的 System.error.println() 语句)
|
||||
|
||||
然而,容器引擎默认提供的功能通常不足以支撑一个完整的日志解决方案。例如:如果一个容器崩溃了、一个Pod被驱逐了、或者一个节点停机了,您通常仍然需要访问您应用程序的日志。为此,您需要一个生命周期与节点、Pod、容器相对独立的存储空间来存储应用程序日志和系统日志。此时,我们引入了一个新的概念:`集群级别的日志 cluster-level-logging`。集群级别的日志需要一个独立的后端,用于存储、分析、查询日志。Kubernetes默认不提供存储日志信息的方案,但是,有很多种现有的日志存储方案可以集成到 Kubernetes 集群中来。
|
||||
|
||||
请参考关于日志架构更详细的描述:
|
||||
|
||||
* [基本的日志](./basic.html)
|
||||
* [节点级别的日志](./node.html)
|
||||
* [集群级别的日志](.cluster.html)
|
||||
12
learning/k8s-advanced/logs/node.md
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
vssueId: 125
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了如何使用kubectl_Kuboard查看和浏览Kubernetes上的节点_容器组_部署等信息_并依据这些信息作出问题诊断
|
||||
meta:
|
||||
- name: keywords
|
||||
content: Kubernetes教程,K8S教程,日志,Logging
|
||||
---
|
||||
|
||||
# 节点级别的日志
|
||||
|
||||
正在撰写...
|
||||
|
Before Width: | Height: | Size: 140 KiB |
BIN
overview/share-coder.assets/image-20191008204458253.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
@ -25,10 +25,10 @@ Kubernetes 容器编排已越来越被大家关注,然而学习 Kubernetes 的
|
||||
|
||||
Kuboard 官网地址:[https://kuboard.cn](https://kuboard.cn/#from_coder_toutiao)
|
||||
|
||||
Kuboard 发布不到两个月时间,github star 已经迅速增长到 422,获得了许多用户的喜爱。
|
||||
Kuboard 发布不到两个月时间,github star 已经迅速增长到 461,获得了许多用户的喜爱。
|
||||
|
||||
<p style="max-width: 720px;">
|
||||
<img src="./share-coder.assets/image-20191003230417140.png" alt="Kubernetes 教程" style="max-width: 100%"></img>
|
||||
<img src="./share-coder.assets/image-20191008204458253.png" alt="Kubernetes 教程" style="max-width: 100%"></img>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@ -9,7 +9,9 @@ Kuboard v1.0.x 的更新说明
|
||||
|
||||
* 工作负载编辑器 --> 容器组 --> 容忍 -- 正在开发
|
||||
* kubernetes 1.16.1
|
||||
* HostAliases
|
||||
|
||||
* https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||||
|
||||
* Service --> SessionAffinity
|
||||
--> clientIP.timeoutSeconds
|
||||
|
||||
|
Before Width: | Height: | Size: 140 KiB |
BIN
support/index.assets/image-20191008204458253.f742de59.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
@ -24,14 +24,14 @@ description: Kubernetes教程_本文描述了如何获得Kuboard授权
|
||||
<grid :rwd="{compact: 'stack'}">
|
||||
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}" style="padding: 1rem 0 1rem 1rem;">
|
||||
<el-card style="height: 100%">
|
||||
<img src="./index.assets/image-20191003231005043.png" alt="Kubernetes教程_Kuboard_Github_Star">
|
||||
<img src="./index.assets/image-20191008204458253.f742de59.png" alt="Kubernetes教程_Kuboard_Github_Star">
|
||||
</el-card>
|
||||
</grid-item>
|
||||
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}" style="padding: 1rem 0 1rem 1rem;">
|
||||
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7;">
|
||||
<li>Kuboard 诞生于大型微服务项目的落地实施,在其发布之前,就已经在许多个实际项目中经受住了考验</li>
|
||||
<li>Kuboard 一经发布,就获得了广泛的关注</li>
|
||||
<li>Kuboard 公开发布不到两个月时间,就已经获得了 422 Github Star(如图所示)</li>
|
||||
<li>Kuboard 公开发布不到两个月时间,就已经获得了 461 Github Star(如图所示)</li>
|
||||
<li>Kuboard 社群中,已有许多的用户将 Kuboard 用于自己的生产环境</li>
|
||||
</el-card>
|
||||
</grid-item>
|
||||
|
||||