优化install-k8s

This commit is contained in:
huanqing.shao
2019-07-26 15:11:28 +08:00
parent be2733eb25
commit ef952aa188
62 changed files with 193 additions and 173 deletions

View File

@ -1,17 +1,17 @@
# 安装 kuboard
# 安装 Kuboard
## 前提
安装 kuboard 时,假设您已经:
安装 Kuboard 时,假设您已经:
* 已经有一个 kubernetes 集群
* 拥有对该 kubernetes 集群执行 kubectl 命令时的所有权限
* 已经有一个 Kubernetes 集群
* 拥有对该 Kubernetes 集群执行 kubectl 命令时的所有权限
如果没有 kubernetes 集群,可以有如下选项:
如果没有 Kubernetes 集群,可以有如下选项:
* 通过 阿里云 创建 kubernetes 容器服务,并获得和配置 kubectl 的访问参数
* 参考 [安装 kubernetes 用于测试](install-k8s)
* 或参考 [安装 kubernetes 高可用](install-kubernetes)
* 通过 阿里云 创建 Kubernetes 容器服务,并获得和配置 kubectl 的访问参数
* 参考 [安装 Kubernetes 单 Master 节点](install-k8s)
* 或参考 [安装 Kubernetes 高可用](install-kubernetes)
[领取阿里云最高2000元红包](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=obezo3pg)
@ -45,15 +45,15 @@
**获取并修改yaml文件**
```bash
wget https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/kuboard.yaml
wget https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/Kuboard.yaml
```
修改文件 kuboard.yaml 中 Ingress 的 host 为 kuboard.yourclustername.yourdomain.com
修改文件 Kuboard.yaml 中 Ingress 的 host 为 Kuboard.yourclustername.yourdomain.com
**执行安装**
```bash
kubectl apply -f kuboard.yaml
kubectl apply -f Kuboard.yaml
```
## 获取 token
@ -71,7 +71,7 @@ kubectl apply -f kuboard.yaml
**执行命令**
```bash
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep Kuboard-user | awk '{print $1}')
```
**输出**
@ -81,7 +81,7 @@ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | gre
Name: admin-user-token-g8hxb
Namespace: kube-system
Labels: <none>
Annotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): kuboard-user
Annotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): Kuboard-user
[kubernetes.io/service-account.uid](http://kubernetes.io/service-account.uid): 948bb5e6-8cdc-11e9-b67e-fa163e5f7a0f
Type: [kubernetes.io/service-account-token](http://kubernetes.io/service-account-token)
@ -106,14 +106,14 @@ token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2Nv
**适用场景**
只读用户不能对集群的配置执行修改操作,非常适用于将开发环境中的 kuboard 只读权限分发给开发者,以便开发者可以便捷地诊断问题
只读用户不能对集群的配置执行修改操作,非常适用于将开发环境中的 Kuboard 只读权限分发给开发者,以便开发者可以便捷地诊断问题
**执行命令**
执行如下命令可以获得 <span style="color: #F56C6C; font-weight: 500;">只读用户</span> 的 Token
```bash
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}')
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep Kuboard-viewer | awk '{print $1}')
```
**输出**
@ -123,7 +123,7 @@ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | gre
Name: admin-user-token-g8hxb
Namespace: kube-system
Labels: <none>
Annotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): kuboard-viewer
Annotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): Kuboard-viewer
[kubernetes.io/service-account.uid](http://kubernetes.io/service-account.uid): 948bb5e6-8cdc-11e9-b67e-fa163e5f7a0f
Type: [kubernetes.io/service-account-token](http://kubernetes.io/service-account-token)
@ -147,7 +147,7 @@ token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2Nv
::: tab 通过NodePort访问 lazy
kuboard Service 使用了 NodePort 的方式暴露服务NodePort 为 32567您可以按如下方式访问 kuboard。可以使用集群中任意节点的 IP 地址)
Kuboard Service 使用了 NodePort 的方式暴露服务NodePort 为 32567您可以按如下方式访问 Kuboard。可以使用集群中任意节点的 IP 地址)
`
http://any-of-your-node-ip:32567/
@ -156,7 +156,7 @@ http://any-of-your-node-ip:32567/
输入前一步骤中获得的 token可进入控制台界面
::: tip
您也可以修改 kuboard.yaml 文件,使用自己定义的 NodePort 端口号
您也可以修改 Kuboard.yaml 文件,使用自己定义的 NodePort 端口号
:::
@ -166,7 +166,7 @@ http://any-of-your-node-ip:32567/
在您的客户端电脑中执行如下命令
```sh
kubectl port-forward service/kuboard 8080:80 -n kube-system
kubectl port-forward service/Kuboard 8080:80 -n kube-system
```
在浏览器打开链接 (请使用 kubectl 所在机器的IP地址
@ -183,7 +183,7 @@ kubectl port-forward service/kuboard 8080:80 -n kube-system
在浏览器打开链接 (请使用前面已修改的域名)
`http://kuboard.yourclustername.yourdomain.com`
`http://Kuboard.yourclustername.yourdomain.com`
输入前一步骤中获得的 token可进入控制台界面

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@ -1,18 +1,20 @@
# 安装 Kubernetes 用于测试
# 安装 Kubernetes 单Master节点
如果您想拥有一个供个人学习测试使用的 kubernetes 集群,推荐的做法是在阿里云采购如下配置:
* 3台 2核4G 的ECS突发性能实例 t5 ecs.t5-c1m2.large或同等配置
* 100G EFS
* Cent OS 7.6
Kuboard 的在线 demo 环境使用的是如下拓扑结构,本文档描述了如何在阿里云完成该 demo 环境的搭建。(推荐阿里云是因为,阿里云是当下技术爱好者最容易接触到的云环境拥有一个3节点 Kubernetes 集群每天的成本不超过12元停机状态下不收费非常适合于技术爱好者学习时使用。
Kuboard 的 Live Demo 环境使用的是如下拓扑结构,本文档描述了如何在完成该 demo 环境的搭建。(阿里云拥有一个3节点 Kubernetes 集群每天的成本不超过12元停机状态下不收费非常适合于技术爱好者学习时使用。
[领取阿里云最高2000元红包](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=obezo3pg)
[Kuboard 在线体验](http://demo.eip.work/#/login?isReadOnly=true&token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi02djZiZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjhiYTU3YmI1LWFiMTctNDM1NS1hNTM0LTQ0Njk4NGY0NzFlZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.DcXNIp0RKha1zkV4ga_QlGfcvMLGx2LOyzX-0VeboC3FojKFhxnfBeoda-zTeh6ugJlSM4kQYrRcof1Kx8Mg3-UgofNmgRySbDEVKtJZyMUoHqLmySKUIn8sbX8q83RNcqwcvY-fM8-w8HSuzU7Td7WWNuZrlCL4q_LQDYIBet1nlQ83YsENKNE8rsZQFDw8YM0MH6BEZLdwyhaboy_jjYbsU7kv8gks3aIX4lh1Fs9ZFQpC_6B0_MZvb7rEeG2M8QWXoUkDoL5JCKu6Wot5GlWf0kDMxIsViggP0NmSDTKh6kIvCkT2FZ2I4guEcjE_EjBpdOS6Abta22tzLlPKhg)
为保证环境的稳定性,在线 Demo 中只提供只读权限。<span style="color: #F56C6C; font-weight: 500;">请在PC浏览器中打开</span>
[Kuboard Live Demo](http://demo.eip.work/#/login?isReadOnly=true&token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi02djZiZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjhiYTU3YmI1LWFiMTctNDM1NS1hNTM0LTQ0Njk4NGY0NzFlZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.DcXNIp0RKha1zkV4ga_QlGfcvMLGx2LOyzX-0VeboC3FojKFhxnfBeoda-zTeh6ugJlSM4kQYrRcof1Kx8Mg3-UgofNmgRySbDEVKtJZyMUoHqLmySKUIn8sbX8q83RNcqwcvY-fM8-w8HSuzU7Td7WWNuZrlCL4q_LQDYIBet1nlQ83YsENKNE8rsZQFDw8YM0MH6BEZLdwyhaboy_jjYbsU7kv8gks3aIX4lh1Fs9ZFQpC_6B0_MZvb7rEeG2M8QWXoUkDoL5JCKu6Wot5GlWf0kDMxIsViggP0NmSDTKh6kIvCkT2FZ2I4guEcjE_EjBpdOS6Abta22tzLlPKhg)
为保证环境的稳定性,Live Demo 中只提供只读权限。<span style="color: #F56C6C; font-weight: 500;">请在PC浏览器中打开</span>
![image-20190718175957160](./install-k8s.assets/image-20190718175957160.png)
![image-20190726144001775](./install-k8s.assets/image-20190726144001775.png)
## 制作标准机镜像
@ -28,9 +30,11 @@ Kuboard 的在线 demo 环境使用的是如下拓扑结构,本文档描述了
- gitlab-runner
- kubernetes images
本文档描述的安装过程已基于 centos 7.6 验证
::: tip
* 您也可以不制作标准机镜像,而是在三台机器上都执行 ***制作标准机镜像*** 中的所有操作步骤
:::
标准机镜像的制作过程描述如下:
**标准机镜像的制作过程描述如下:**
### 安装docker
@ -82,11 +86,11 @@ docker version
**参考文档**
https://docs.docker.com/install/linux/docker-ce/centos/
https://docs.docker.com/install/linux/linux-postinstall/
> **参考文档**
>
> https://docs.docker.com/install/linux/docker-ce/centos/
>
> https://docs.docker.com/install/linux/linux-postinstall/
@ -133,7 +137,9 @@ setenforce 0
**修改 /etc/sysctl.conf**
```vim /etc/sysctl.conf```
```
vim /etc/sysctl.conf
```
向其中添加
@ -159,11 +165,15 @@ yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
**修改docker Cgroup Driver为systemd**
```vim /usr/lib/systemd/system/docker.service```
```
vim /usr/lib/systemd/system/docker.service
```
向其中他添加
```--exec-opt native.cgroupdriver=systemd```
```
--exec-opt native.cgroupdriver=systemd
```
如下图所示
@ -246,8 +256,9 @@ docker tag 2c4adeb21b4f k8s.gcr.io/etcd:3.3.10
echo "x.x.x.x apiserver.demo" >> /etc/hosts
```
> 请替换其中的 x.x.x.x 为您的 demo-master-a-1 的实际 ip 地址
::: warning
请替换其中的 x.x.x.x 为您的 demo-master-a-1 的实际 ip 地址
:::
**创建 /root/k8s/kubeadm-config.yaml**
@ -343,10 +354,10 @@ echo "x.x.x.x apiserver.demo" >> /etc/hosts
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
```
> * 将 x.x.x.x 替换为 loader balancer 的实际 ip
>
> * 将 kubeadm join 命令后的参数替换为上一个步骤中实际从 demo-master-a-1 节点获得的参数
::: tip
* 将 x.x.x.x 替换为 demo-master-a-1 的实际 ip
* 将 kubeadm join 命令后的参数替换为上一个步骤中实际从 demo-master-a-1 节点获得的参数
:::
### 检查 apiserver初始化结果
@ -363,7 +374,9 @@ kubectl get nodes
## 移除 worker 节点
> 正常情况下,您无需移除 worker 节点
::: warning
正常情况下,您无需移除 worker 节点
:::
在准备移除的 worker 节点上执行
@ -377,23 +390,21 @@ kubeadm reset
kubectl delete node demo-worker-x-x
```
> * 将 demo-worker-x-x 替换为要移除的 worker 节点的名字
> * worker 节点的名字可以通过在第一个 master 节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
::: tip
* 将 demo-worker-x-x 替换为要移除的 worker 节点的名字
* worker 节点的名字可以通过在节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
:::
## 安装 Ingress Controller
> ingress官方文档https://kubernetes.io/docs/concepts/services-networking/ingress/
> Ingress官方文档https://kubernetes.io/docs/concepts/services-networking/ingress/
>
> Ingress Controllers官网介绍[https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
> Ingress Controllers官网介绍https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
>
> 本文中使用如下部署方式https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge
>
> kubernetes支持多种Ingress Controllers本文推荐使用
>
> https://github.com/nginxinc/kubernetes-ingress
> kubernetes支持多种Ingress Controllers本文推荐使用 https://github.com/nginxinc/kubernetes-ingress
### 在 demo-master-a-1 上执行
@ -402,15 +413,17 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
```
### 配置域名解析
将域名 *.demo.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z
### 验证配置
在浏览器访问 a.demo.yourdomain.com将得到 404 NotFound 错误页面
## 下一步
:tada: :tada:
您已经完成了 Kubernetes 集群的安装,下一步请:
[安装 Kuboard](/install/install-dashboard)

View File

@ -1,4 +1,8 @@
# 安装 Kubernetes
# 安装 Kubernetes 高可用
::: danger
推荐初学者按照 [安装Kubernetes 单Master节点](install-k8s) 文档进行 Kubernetes 集群搭建
:::
# 介绍