优化install-k8s
This commit is contained in:
@ -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 |
BIN
install/install-k8s.assets/image-20190726144001775.png
Normal file
BIN
install/install-k8s.assets/image-20190726144001775.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
@ -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>
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
## 制作标准机镜像
|
||||
@ -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)
|
||||
@ -1,4 +1,8 @@
|
||||
# 安装 Kubernetes
|
||||
# 安装 Kubernetes 高可用
|
||||
|
||||
::: danger
|
||||
推荐初学者按照 [安装Kubernetes 单Master节点](install-k8s) 文档进行 Kubernetes 集群搭建
|
||||
:::
|
||||
|
||||
# 介绍
|
||||
|
||||
|
||||
Reference in New Issue
Block a user