This commit is contained in:
huanqing.shao
2020-04-04 10:56:27 +08:00
parent 7c3deb096b
commit ab829b451e
20 changed files with 9998 additions and 210 deletions

View File

@ -1,9 +1,12 @@
version: "3"
services:
kuboard:
image: eipwork/kuboard:lua
image: eipwork/kuboard:arm
ports:
- "8083:80"
environment:
KUBERNETES_SERVICE_HOST: 127.0.0.1
KUBERNETES_SERVICE_PORT_HTTPS: 6443
volumes:
- /Users/shaohuanqing/Kuboard/kuboard-workspace/nginx-lua/docker/nginx.80.conf:/etc/nginx/conf.d/nginx.80.conf
- /Users/shaohuanqing/Kuboard/kuboard-workspace/kuboard-press/docs:/usr/share/nginx/html

107
install/arm/raspberry-pi.md Normal file
View File

@ -0,0 +1,107 @@
# 在树莓派4B上安装CentOS
## 烧录镜像
* 从华为镜像服务下载 RaspberryPI 的 CentOS 镜像,下载地址为:
http://mirrors.huaweicloud.com/centos-altarch/7.7.1908/isos/armhfp/CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-1908-sda.raw.xz
* 从 raspberrypi 官网下载镜像烧录工具 Raspberry Pi Imager
https://www.raspberrypi.org/downloads/
* 将 raspberrypi 连接到路由器(有线)
* ssh 登录,默认密码为 centos
## 扩展磁盘
* 执行 `df -h` 可以看到,系统只有 2G 的存储空间TF 卡上的剩余空间未被利用
* 在 /root 目录下执行:
```sh
cat README
```
结果为
```
== CentOS 7 userland ==
If you want to automatically resize your / partition, just type the following (as root user):
rootfs-expand
```
* echo $LANG如果结果为 `zh_CN.UTF-8`,执行 rootfs-expand 命令将失败
* 执行命令
``` sh
export LANG="en_US.UTF-8"
```
* 执行命令
``` sh
rootfs-expand
```
执行成功
* 查看磁盘情况
``` sh
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 57G 1.2G 56G 2% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 17M 1.9G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mmcblk0p1 286M 53M 234M 19% /boot
tmpfs 391M 0 391M 0% /run/user/0
```
## 修改 hostname
```sh
# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts
```
## 设置国内yum镜像源
建议使用 [华为开源镜像站](https://mirrors.huaweicloud.com/)
选择 `CentOS-AltArch` 按照其提供的步骤设置 yum 镜像源。
## 安装 Docker
```sh
yum install docker
```
## 安装 nodejs
必须下载源代码编译
* 以 `root` 用户登录系统
* 安装编译工具
``` sh
yum install -y gcc gcc-c++ make
```
* 下载源代码并编译
``` sh
wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1.tar.gz
tar -xvf node-v12.16.1.tar.gz
cd node-v12.16.1
./configure
make
make install
```
* 重启
```sh
reboot
```
* 检查安装结果
``` sh
node -v
npm -v
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -84,7 +84,6 @@ meta:
* [使用KuboardProxy](/guide/proxy/)
* [使用port-forward访问集群中的应用程序](/learning/k8s-practice/access/port-forward.html)
* [Kubernetes网络模型](/learning/k8s-intermediate/service/network.html)
* [CI/CD集成](/guide/cicd/)
* [容器应用的设计原则、模式和反模式](/learning/k8s-practice/micro-service/design-pattern.html)
* [尝试部署完整的微服务](/learning/k8s-practice/ocp/)
* 完善工具配置
@ -94,7 +93,21 @@ meta:
* [了解日志聚合](/learning/k8s-advanced/logs/)
* [了解Kubernetes的监控](/guide/example/monitor.html)
* [免费获得Kuboard授权](/support/)
* 下一步,可按教程章节顺序对 Kubernetes 各种概念进行深入理解
* 自动伸缩
* 按教程章节顺序对 Kubernetes 各种概念进行深入理解
* CI/CD 工具链
* 私有 Docker 镜像仓库
* CI/CD pipeline
* [CI/CD集成](/guide/cicd/)
* 投产准备
* 集群规划
* 长期维护
* 可观察性
* 升级
* kubeadm 更新证书
* 增加、删除节点
* 备份恢复 etcd
* 故障排除
:::
</div>

View File

@ -18,7 +18,7 @@
"babel-plugin-component": "^1.1.1",
"bootstrap": "^4.4.1",
"bootstrap-vue": "^2.7.0",
"date-fns": "^2.11.0",
"date-fns": "^1.30.1",
"esm": "^3.2.25",
"reduce-css-calc": "^2.1.7",
"vue2-animate": "^2.1.3",

BIN
support/change-log/bug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@ -6,22 +6,9 @@ v1.0.7 已经支持了 kubectl proxy 的功能、v1.0.8 做 Deployment 的滚动
v1.0.9-beta.2
* 存储卷声明:
* 以列表页显示存储卷声明的列表;
* 详情对话框增加表单校验;
* ConfigMap
* 以列表页显示ConfigMap的列表
*
---
缺少字段:
BUG:
arm 环境下,应该使用镜像: https://hub.docker.com/r/vbouchaud/nfs-client-provisioner/tags

View File

@ -0,0 +1,364 @@
{
"kind": "Node",
"apiVersion": "v1",
"metadata": {
"name": "k8s-node-160",
"selfLink": "/api/v1/nodes/k8s-node-160",
"uid": "bdeaea31-a579-11e9-9d39-a2e9a0e649c5",
"resourceVersion": "99718610",
"creationTimestamp": "2019-07-13T14:23:10Z",
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"environment": "master",
"kubernetes.io/arch": "amd64",
"kubernetes.io/hostname": "k8s-node-160",
"kubernetes.io/os": "linux"
},
"annotations": {
"flannel.alpha.coreos.com/backend-data": "{\"VtepMAC\":\"46:23:a4:b0:05:f3\"}",
"flannel.alpha.coreos.com/backend-type": "vxlan",
"flannel.alpha.coreos.com/kube-subnet-manager": "true",
"flannel.alpha.coreos.com/public-ip": "192.168.0.160",
"kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock",
"node.alpha.kubernetes.io/ttl": "0",
"volumes.kubernetes.io/controller-managed-attach-detach": "true"
}
},
"spec": {
"podCIDR": "10.244.10.0/24"
},
"status": {
"capacity": {
"cpu": "24",
"ephemeral-storage": "100660296Ki",
"hugepages-2Mi": "0",
"memory": "32164Mi",
"pods": "110"
},
"allocatable": {
"cpu": "24",
"ephemeral-storage": "92768528641",
"hugepages-2Mi": "0",
"memory": "32064Mi",
"pods": "110"
},
"conditions": [
{
"type": "MemoryPressure",
"status": "False",
"lastHeartbeatTime": "2020-03-24T09:43:44Z",
"lastTransitionTime": "2020-03-18T01:53:14Z",
"reason": "KubeletHasSufficientMemory",
"message": "kubelet has sufficient memory available"
},
{
"type": "DiskPressure",
"status": "False",
"lastHeartbeatTime": "2020-03-24T09:43:44Z",
"lastTransitionTime": "2020-03-18T01:53:14Z",
"reason": "KubeletHasNoDiskPressure",
"message": "kubelet has no disk pressure"
},
{
"type": "PIDPressure",
"status": "False",
"lastHeartbeatTime": "2020-03-24T09:43:44Z",
"lastTransitionTime": "2020-03-18T01:53:14Z",
"reason": "KubeletHasSufficientPID",
"message": "kubelet has sufficient PID available"
},
{
"type": "Ready",
"status": "True",
"lastHeartbeatTime": "2020-03-24T09:43:44Z",
"lastTransitionTime": "2020-03-18T01:53:14Z",
"reason": "KubeletReady",
"message": "kubelet is posting ready status"
}
],
"addresses": [
{
"type": "InternalIP",
"address": "192.168.0.160"
},
{
"type": "Hostname",
"address": "k8s-node-160"
}
],
"daemonEndpoints": {
"kubeletEndpoint": {
"Port": 10250
}
},
"nodeInfo": {
"machineID": "5fade1f3575148e1ab4922b7585a54b0",
"systemUUID": "4C4C4544-0036-3510-8033-B8C04F4D4C31",
"bootID": "73f676e9-d5e4-4568-8720-251382678d9b",
"kernelVersion": "4.4.185-1.el7.elrepo.x86_64",
"osImage": "CentOS Linux 7 (Core)",
"containerRuntimeVersion": "docker://18.9.7",
"kubeletVersion": "v1.14.0",
"kubeProxyVersion": "v1.14.0",
"operatingSystem": "linux",
"architecture": "amd64"
},
"images": [
{
"names": [
"harbor.tuituifang.com/collect-project/m5i5j@sha256:0d98b2da8b789736c24d28c98cfb908afded84a76aac7444fb02d601a6b0b696",
"harbor.tuituifang.com/collect-project/m5i5j:225be35"
],
"sizeBytes": 1243367148
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:0b6f7fe576d465669e4d56fee6681145c39bbfd6298f98765708a50a21f9ae5c",
"harbor.tuituifang.com/collect-project/baixingbroker:c30daeb"
],
"sizeBytes": 1243335295
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:dc6cf68e300542807100ddd09553e56f1aaf7641a50d9a6b0ddbd0c7855aaeb0",
"harbor.tuituifang.com/collect-project/baixingbroker:2b0bc77"
],
"sizeBytes": 1243251475
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:6eed30f18aead03ce1161d2ba9e5fbe311c75d53af14d7036e561b9005195821",
"harbor.tuituifang.com/collect-project/baixingbroker:e9b8b2e"
],
"sizeBytes": 1243250628
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:a008016dfad130511982e60b3b61a860bb9f6183d0b499ce1d37abcef560e616",
"harbor.tuituifang.com/collect-project/baixingbroker:fa6e78b"
],
"sizeBytes": 1243223532
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:9bd668df2fec1ea9b177dd0ff685255dd3afe991946b5385fe44db76885cda65",
"harbor.tuituifang.com/collect-project/baixingbroker:eadfb29"
],
"sizeBytes": 1242587773
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:7b41e0970335329355f769f049e92ee1bb1defbfed7588fcf4ee915c87650065",
"harbor.tuituifang.com/collect-project/baixingbroker:00f3ba6"
],
"sizeBytes": 1242586915
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:33fcb115f76041aeb47d74906de55ec1717a32017e4d701a67f6e3f68b9a918c",
"harbor.tuituifang.com/collect-project/baixingbroker:b3fe7f6"
],
"sizeBytes": 1242586055
},
{
"names": [
"harbor.tuituifang.com/collect-project/baixingbroker@sha256:78d70c8eef58bbbebd45c486c010834fd06d866a35776044e955b3123798ef69",
"harbor.tuituifang.com/collect-project/baixingbroker:75a1b25"
],
"sizeBytes": 1242585175
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-rankinglist@sha256:b61dc156488b52a2949f7166d24bea8b2491d89047ed2b1ce6ca600e02aaedc3",
"harbor.tuituifang.com/caiji/scrapy-rankinglist:1855bf1"
],
"sizeBytes": 1238396363
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-rankinglist@sha256:37e3fcfa740cb42ad54eee9e2d5cd6cf0cc6f17d609f781730c7942cb9a19fa0",
"harbor.tuituifang.com/caiji/scrapy-rankinglist:0996b1d"
],
"sizeBytes": 1238379437
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-qbpro@sha256:27974660a2efef14b0786e3f9fea7a13ff60f77abc1be127b5b01a55f034ede0",
"harbor.tuituifang.com/caiji/scrapy-qbpro:9a60e26"
],
"sizeBytes": 1238270483
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-deal@sha256:999db7e27e6d6e2c90604b71bf9da286781bc8c2af817fb8b1907d6732d3a53d",
"harbor.tuituifang.com/caiji/scrapy-deal:ec116d1"
],
"sizeBytes": 1238220396
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-deal@sha256:a33d69d9d93b96dc5acbc90e659db587dfd7dfdf9477183c3ac9c449b7a8faf4",
"harbor.tuituifang.com/caiji/scrapy-deal:2fa6ce8"
],
"sizeBytes": 1238212099
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-monthcomm@sha256:74b5451ad4f9d487c7e7f8372e43318c2e0c46e047d39007cd07fc7628e3c4ca",
"harbor.tuituifang.com/caiji/scrapy-monthcomm:ff0b16b"
],
"sizeBytes": 1238208023
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-monthcomm@sha256:515e0e328dd338c1935be76b9d9f951e25573bd8e22456815742953ee911caa0",
"harbor.tuituifang.com/caiji/scrapy-monthcomm:bcc3f9f"
],
"sizeBytes": 1238201083
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-monthcomm@sha256:f988335cb24fa9e3290c2b90b437152c2edebe060bcb3e976583cbb04312321e",
"harbor.tuituifang.com/caiji/scrapy-monthcomm:1610a24"
],
"sizeBytes": 1238181359
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-jjr@sha256:7ae2ef82e8a482cfc49c82c6f38f257d2cfed098e9443b44416c90c578a5d5de",
"harbor.tuituifang.com/caiji/scrapy-jjr:5fdf914"
],
"sizeBytes": 1238170562
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-fang@sha256:02d8fcb678de4ae6eed9bb4e5b8c6397e2e18eda397c2f014640288143802839",
"harbor.tuituifang.com/caiji/scrapy-fang:a00e07e"
],
"sizeBytes": 1238167963
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-fang@sha256:bc516774a7f6b655490499cffc4e1f8b3983a5b28d147366af27afb4d9d10ae5",
"harbor.tuituifang.com/caiji/scrapy-fang:a2ce558"
],
"sizeBytes": 1238160901
},
{
"names": [
"192.168.0.72:9000/caiji/scrapy-fang@sha256:8ba10d2c6ff5538992409fd3345a7da3b6801d9d66c3943d4653566ba16d23a5",
"192.168.0.72:9000/caiji/scrapy-fang:1079e76"
],
"sizeBytes": 1238158948
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-jjr@sha256:62d1342413ca5c77e2344aa6966019a9a053d385a62f5db31e9fb1788a87c6e3",
"harbor.tuituifang.com/caiji/scrapy-jjr:5897acc"
],
"sizeBytes": 1238157769
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-holographic@sha256:9c0562eeb091b507daa80d080341a3569f9d2510b58b41cc71ec2fa210ed50a1",
"harbor.tuituifang.com/caiji/scrapy-holographic:5353ac9"
],
"sizeBytes": 1238155623
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-wubasalehouselist@sha256:17565fdd0f35a47d876c83aeb0721e9aa576d70e7036f82b9d4a5ad8f675beb6",
"harbor.tuituifang.com/caiji/scrapy-wubasalehouselist:f4b8b14"
],
"sizeBytes": 1238135517
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-commrent@sha256:9132a04aceb72f62993f2b979b4ba1867b205120939412b7b0455f1f6503a706",
"harbor.tuituifang.com/caiji/scrapy-commrent:26a1526"
],
"sizeBytes": 1238128716
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-liebiaolist@sha256:2a54fde1ab063a8bfe0c094c26d8d75096ba641431a525da603adbf10b98cadf",
"harbor.tuituifang.com/caiji/scrapy-liebiaolist:f9b2094"
],
"sizeBytes": 1238125875
},
{
"names": [
"harbor.tuituifang.com/caiji/scrapy-fangranking@sha256:f4003415401e6b900721e58a22c7ec0e025ef358fb7950b5ca64ab39e4642c85",
"harbor.tuituifang.com/caiji/scrapy-fangranking:92473c2"
],
"sizeBytes": 1238123745
},
{
"names": [
"192.168.0.72:9000/ops/python2-scrapy@sha256:74a39ad105cfa47218c495637246b4f5514db5e5abf32beaa74cc5676b94f742",
"harbor.tuituifang.com/ops/python2-scrapy@sha256:74a39ad105cfa47218c495637246b4f5514db5e5abf32beaa74cc5676b94f742",
"192.168.0.72:9000/ops/python2-scrapy:latest",
"harbor.tuituifang.com/ops/python2-scrapy:latest"
],
"sizeBytes": 1237919102
},
{
"names": [
"harbor.tuituifang.com/vpsip/payvpsip@sha256:d0ac33b4bea1c8462e9676293de1acd5db00ac376d583c38fda64a5ba86316a7",
"harbor.tuituifang.com/vpsip/payvpsip:v1"
],
"sizeBytes": 581708263
},
{
"names": [
"harbor.tuituifang.com/ops/jenkins-slave@sha256:57bbf32c46ad700988cc2057bb34d76a95b311bfc3632517bb90c76ac096c723",
"harbor.tuituifang.com/ops/jenkins-slave:latest"
],
"sizeBytes": 532678399
},
{
"names": [
"harbor.tuituifang.com/vpsip/vpsip-freeip@sha256:000fe7af1fbe44f894e1e1f4cd3cb635662191c8bbaf21baa48da662388d3247",
"harbor.tuituifang.com/vpsip/vpsip-freeip:1636de7"
],
"sizeBytes": 179445905
},
{
"names": [
"registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy@sha256:a704064100b363856afa4cee160a51948b9ac49bbc34ba97caeb7928055e9de1",
"registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.0"
],
"sizeBytes": 82104359
},
{
"names": [
"quay.io/coreos/flannel@sha256:7806805c93b20a168d0bbbd25c6a213f00ac58a511c47e8fa6409543528a204e",
"quay.io/coreos/flannel:v0.11.0-amd64"
],
"sizeBytes": 52567296
},
{
"names": [
"prom/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee",
"prom/node-exporter:v0.18.1"
],
"sizeBytes": 22933477
},
{
"names": [
"quay.io/prometheus/node-exporter@sha256:1b129a3801a0440f9c5b2afb20082dfdb31bf6092b561f5f249531130000cb83",
"quay.io/prometheus/node-exporter:v0.17.0"
],
"sizeBytes": 20982005
},
{
"names": [
"registry.cn-hangzhou.aliyuncs.com/google_containers/pause@sha256:759c3f0f6493093a9043cc813092290af69029699ade0e3dbe024e968fcb7cca",
"registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1"
],
"sizeBytes": 742472
}
]
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,428 @@
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: example
name: cloud-eureka
annotations:
k8s.eip.work/workload: cloud-eureka
k8s.eip.work/displayName: 服务注册
k8s.eip.work/ingress: 'true'
k8s.eip.work/service: ClusterIP
labels:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
spec:
selector:
matchLabels:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets:
- {}
restartPolicy: Always
initContainers: []
containers:
- image: 'eipsample/example-cloud-eureka:v1.0.0-alpha.1'
imagePullPolicy: Always
name: cloud-eureka
volumeMounts: []
resources:
limits:
requests:
env:
- name: CLOUD_EUREKA_DEFAULT_ZONE
value: 'http://cloud-eureka-0:9200/eureka'
volumes: []
terminationGracePeriodSeconds: 30
replicas: 1
volumeClaimTemplates: []
serviceName: cloud-eureka
---
apiVersion: v1
kind: Service
metadata:
namespace: example
name: cloud-eureka
annotations:
k8s.eip.work/workload: cloud-eureka
k8s.eip.work/displayName: 服务注册
labels:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
spec:
selector:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
type: ClusterIP
ports:
- port: 9200
targetPort: 9200
protocol: TCP
name: mtfsyi
nodePort: 0
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
namespace: example
name: cloud-eureka
annotations:
k8s.eip.work/workload: cloud-eureka
k8s.eip.work/displayName: 服务注册
labels:
k8s.eip.work/layer: cloud
k8s.eip.work/name: cloud-eureka
spec:
rules:
- host: cloud-eureka.example.demo.kuboard.cn
http:
paths:
- path: /
backend:
serviceName: cloud-eureka
servicePort: mtfsyi
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: example
name: db-example
annotations:
k8s.eip.work/workload: db-example
k8s.eip.work/displayName: db-example
deployment.kubernetes.io/revision: '1'
k8s.eip.work/ingress: 'false'
k8s.eip.work/service: ClusterIP
labels:
k8s.eip.work/layer: db
k8s.eip.work/name: db-example
spec:
selector:
matchLabels:
k8s.eip.work/layer: db
k8s.eip.work/name: db-example
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: db
k8s.eip.work/name: db-example
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets:
- {}
restartPolicy: Always
initContainers: []
containers:
- image: 'eipsample/example-db-example:v1.0.0-alpha.1'
imagePullPolicy: Always
name: db-example
volumeMounts:
- name: db-example-storage
mountPath: /var/lib/mysql
subPath: mysql
resources:
limits:
requests:
env:
- name: MYSQL_ROOT_PASSWORD
value: 'soqjdke4#es'
volumes:
- name: db-example-storage
emptyDir: {}
terminationGracePeriodSeconds: 30
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
replicas: 1
---
apiVersion: v1
kind: Service
metadata:
namespace: example
name: db-example
annotations:
k8s.eip.work/workload: db-example
k8s.eip.work/displayName: db-example
labels:
k8s.eip.work/layer: db
k8s.eip.work/name: db-example
spec:
selector:
k8s.eip.work/layer: db
k8s.eip.work/name: db-example
type: ClusterIP
ports:
- port: 3306
targetPort: 3306
protocol: TCP
name: fp6ksw
nodePort: 0
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: example
name: gateway-example
annotations:
k8s.eip.work/workload: gateway-example
k8s.eip.work/displayName: gateway-example
deployment.kubernetes.io/revision: '1'
k8s.eip.work/ingress: 'false'
k8s.eip.work/service: ClusterIP
labels:
k8s.eip.work/layer: gateway
k8s.eip.work/name: gateway-example
spec:
selector:
matchLabels:
k8s.eip.work/layer: gateway
k8s.eip.work/name: gateway-example
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: gateway
k8s.eip.work/name: gateway-example
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets:
- {}
restartPolicy: Always
initContainers: []
containers:
- image: 'eipsample/example-gateway-example:v1.0.0-alpha.1'
imagePullPolicy: Always
name: gateway-example
volumeMounts: []
resources:
limits:
requests:
env:
- name: CLOUD_EUREKA_DEFAULT_ZONE
value: 'http://cloud-eureka:9200/eureka'
- name: SPRING_PROFILES_ACTIVE
value: example
volumes: []
terminationGracePeriodSeconds: 30
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
replicas: 1
---
apiVersion: v1
kind: Service
metadata:
namespace: example
name: gateway-example
annotations:
k8s.eip.work/workload: gateway-example
k8s.eip.work/displayName: gateway-example
labels:
k8s.eip.work/layer: gateway
k8s.eip.work/name: gateway-example
spec:
selector:
k8s.eip.work/layer: gateway
k8s.eip.work/name: gateway-example
type: ClusterIP
ports:
- port: 9201
targetPort: 9201
protocol: TCP
name: pdmd3y
nodePort: 0
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: example
name: svc-example
annotations:
k8s.eip.work/workload: svc-example
k8s.eip.work/displayName: svc-example
deployment.kubernetes.io/revision: '1'
k8s.eip.work/ingress: 'false'
k8s.eip.work/service: none
labels:
k8s.eip.work/layer: svc
k8s.eip.work/name: svc-example
spec:
selector:
matchLabels:
k8s.eip.work/layer: svc
k8s.eip.work/name: svc-example
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: svc
k8s.eip.work/name: svc-example
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets:
- {}
restartPolicy: Always
initContainers: []
containers:
- image: 'eipsample/example-svc-example:v1.0.0-alpha.1'
imagePullPolicy: Always
name: svc-example
volumeMounts: []
resources:
limits:
requests:
env:
- name: CLOUD_EUREKA_DEFAULT_ZONE
value: 'http://cloud-eureka:9200/eureka'
- name: DB_EXAMPLE_URL
value: >-
jdbc:mysql://db-example:3306/eip_db_example?characterEncoding=utf8&useSSL=false
- name: DB_EXAMPLE_USERNAME
value: eip_user
- name: DB_EXAMPLE_PASSWORD
value: 1qaz2wsx
- name: snowflake.dataCenterId
value: '1'
- name: csp.sentinel.dashboard.server
value: monitor-sentinel
volumes: []
terminationGracePeriodSeconds: 30
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
replicas: 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: example
name: web-example
annotations:
k8s.eip.work/workload: web-example
k8s.eip.work/displayName: web-example
deployment.kubernetes.io/revision: '2'
k8s.eip.work/ingress: 'true'
k8s.eip.work/service: ClusterIP
labels:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
spec:
selector:
matchLabels:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
revisionHistoryLimit: 10
template:
metadata:
labels:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
spec:
securityContext:
seLinuxOptions: {}
imagePullSecrets: []
restartPolicy: Always
initContainers: []
containers:
- image: 'eipsample/example-web-example:v1.0.0-alpha.1'
imagePullPolicy: Always
name: web-example
volumeMounts: []
resources:
limits:
requests:
env: []
volumes: []
terminationGracePeriodSeconds: 30
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
replicas: 1
---
apiVersion: v1
kind: Service
metadata:
namespace: example
name: web-example
annotations:
k8s.eip.work/workload: web-example
k8s.eip.work/displayName: web-example
labels:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
spec:
selector:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
type: ClusterIP
ports:
- port: 80
targetPort: 80
protocol: TCP
name: mawfrp
nodePort: 0
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
namespace: example
name: web-example
annotations:
k8s.eip.work/workload: web-example
k8s.eip.work/displayName: web-example
labels:
k8s.eip.work/layer: web
k8s.eip.work/name: web-example
spec:
rules:
- host: web-example.example.demo.kuboard.cn
http:
paths:
- path: /
backend:
serviceName: web-example
servicePort: mawfrp
- host: web-example-2.example.demo.kuboard.cn
http:
paths:
- path: /
backend:
serviceName: web-example
servicePort: mawfrp

View File

@ -0,0 +1,154 @@
---
metadata:
annotations:
deployment.kubernetes.io/desired-replicas: '1'
deployment.kubernetes.io/max-replicas: '2'
deployment.kubernetes.io/revision: '2'
kubernetes.io/change-cause: kubectl apply --filename=- --record=true
creationTimestamp: '2020-03-24T08:17:17Z'
generation: 2
labels:
app: bsdbui-sit
pod-template-hash: 76f5d48b47
name: bsdbui-sit-76f5d48b47
namespace: pay
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: true
controller: true
kind: Deployment
name: bsdbui-sit
uid: d87a80a6-6da7-11ea-996b-fa163e38ce9e
resourceVersion: '4142193'
selfLink: /apis/apps/v1/namespaces/pay/replicasets/bsdbui-sit-76f5d48b47
uid: e0479972-6da7-11ea-9447-fa163ed105c7
spec:
replicas: 0
selector:
matchLabels:
app: bsdbui-sit
pod-template-hash: 76f5d48b47
template:
metadata:
labels:
app: bsdbui-sit
pod-template-hash: 76f5d48b47
spec:
containers:
- command:
- /bin/bash
- '-c'
- >-
/usr/java/jdk1.8.0_162/bin/java
-Dapollo.meta=http://apollo-meta-server.op:8080
-Dapollo.host=apollo-meta-server.op:8080 -Denv=PRO -Dapp.id=bsdbui
-Dapollo.cacheDir=/data/
-Dskywalking.agent.service_name=bsdbui-sit
-Decp.plt.inst_no=$(hostname |awk -F- '{print $NF}')
-Duser.timezone=Asia/Shanghai -Xms1536M -Xmx1536M
-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256m -Xss256k
-XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps
-Xloggc:/data/bsdbui/logs/gc-bsdbui.log -XX:+PrintGCDetails
-XX:+UseParallelGC -XX:+UseParallelOldGC -DHWORKDIR=/data/bsdbui
-javaagent:/app/agent/skywalking-agent/skywalking-agent.jar -jar
bsdbui.*ar
env:
- name: APOLLO_HOST
value: 'apollo-meta-server.op:8080'
- name: LANG
value: en_US.utf8
image: 'harbor.tenserpay.xyz/pay/bsdbui:release_2020-03-23-16-48_13'
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
exec:
command:
- sleep
- '20'
name: bsdbui-sit
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: '1'
memory: 2Gi
securityContext:
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data/bsdbui/log
name: bizlog
- mountPath: /data/bsdbui/logs
name: bizlogs
- mountPath: /data/bsdbui/trc
name: trclog
workingDir: /data/bsdbui/approot/data/
- env:
- name: SSH_ENABLE_ROOT
value: 'true'
image: 'harbor.tenserpay.xyz/op/sshd:v1.0.3'
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
exec:
command:
- sleep
- '1'
livenessProbe:
failureThreshold: 10
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 22
timeoutSeconds: 1
name: sshd
readinessProbe:
failureThreshold: 10
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 22
timeoutSeconds: 1
resources:
limits:
cpu: 200m
memory: 429496729600m
requests:
cpu: 100m
memory: 214748364800m
securityContext:
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data/bsdbui/log
name: bizlog
- mountPath: /data/bsdbui/logs
name: bizlogs
- mountPath: /data/bsdbui/trc
name: trclog
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
shareProcessNamespace: true
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /data/bsdbui-sit/log
type: ''
name: bizlog
- hostPath:
path: /data/bsdbui-sit/logs
type: ''
name: bizlogs
- hostPath:
path: /data/bsdbui-sit/trc
type: ''
name: trclog
status:
observedGeneration: 2
replicas: 0

View File

@ -15,6 +15,18 @@ description: 本文描述了Kuboard_v1.0.x的版本变更说明
Kuboard v1.0.x 的更新说明
v1.0.9-beta.4
**发布日期**
2020年4月3日
**新特性**
* 优化页头显示
* 优化集群概览页配色
* 优化列表页显示
v1.0.9-beta.3
**发布日期**

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 36 KiB

80
support/white-paper.md Normal file
View File

@ -0,0 +1,80 @@
---
lessAds: true
# vssueId: 71
layout: SpecialSupportPage
description: Kubernetes教程_本文描述了 Kuboard 的产品定位
---
# Kuboard
<AdSenseTitle/>
## 产品定位
利用云原生技术,助力企业获得:
* 更快速的上市时间
减少部署生产可用的 Kubernetes 集群所需的人力成本,快速满足您的应用程序开发需求;
* 更灵活的部署选项
支持本地部署和云部署;
* 更坚实的企业级支持
快速的问题响应支持,减少问题发生后对长期运营可能造成的潜在影响;
## 产品功能
* CI/CD
支持 CI/CD 与 Kuberentes 的集成,实现应用的自动化部署和发布;实现开发团队与运维团队的高效衔接;
* 原生 Kubernetes 管理
支持多种形式部署的 Kubernetes 集群:
* 私有化部署;
* 云端部署等;
* 多团队管理
完善的权限控制管理,可基于企业的本地用户目录(例如 LDAP、GitLab CE/EE OAuth、GitHub CE/EE OAuth、KeyCloak等实现单点登录。允许多个团队共享同一个 Kubernetes 集群,并拥有各自的名称空间;
* 微服务容器编排
* 实现微服务应用的一键导出以及一键导入,可以轻松便捷地完成应用程序在新环境下的部署;
* 基于 Kubernetes提供的原生功能实现微服务容器编排的图形化操作、图形化展示极大的降低 Kubernetes 的使用和管理门槛;
* 提供按需调度、故障自动恢复的能力;
* 通过日志跟踪、Web命令行终端、Kuboard Proxy 等多种手段,在容器化的环境下便捷地诊断和调试应用程序;
* 支持 Spring Cloud、Dubbo 等主流微服务架构;
* 多层级监控
开箱即用的多层级监控:
* 资源层监控
* 容器层监控
* 中间件层监控
* Java 虚拟机层监控、APM 监控
* 链路层监控
* 聚合日志
私有化部署的日志聚合工具:
* 将 Kubernetes 集群中的容器日志聚合存储,并且可以根据用户 ID、交易 ID 查询到该用户/交易在所有微服务上的调用情况(日志)
## 产品架构图
下图示意了基于 Kuboard 的微服务架构及 DevOps 系统。
![image-20200322104248201](./white-paper.assets/image-20200322104248201.png)
## 社区
Kuboard 在社区获得了广泛的欢迎,并在半年内获得 3200+ GitHub Star。已有近百家企业使用基于 Kubernetes + Kuboard 的解决方案在 Kubernetes 上落地微服务架构。
![Kubernetes教程_Kuboard_Github_Star](./white-paper.assets/kuboard-press.svg)

204
yarn.lock
View File

@ -1485,19 +1485,11 @@ aos@^2.3.4:
lodash.debounce "^4.0.6"
lodash.throttle "^4.0.1"
aproba@^1.0.3, aproba@^1.1.1:
aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
are-we-there-yet@~1.1.2:
version "1.1.5"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@ -2394,11 +2386,6 @@ console-browserify@^1.1.0:
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
consolidate@^0.15.1:
version "0.15.1"
resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
@ -2759,16 +2746,11 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
date-fns@^1.29.0:
date-fns@^1.29.0, date-fns@^1.30.1:
version "1.30.1"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
date-fns@^2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.11.0.tgz#ec2b44977465b9dcb370021d5e6c019b19f36d06"
integrity sha512-8P1cDi8ebZyDxUyUprBXwidoEtiQAawYPGvpfb+Dg0G6JrQ+VozwOmm91xYC0vAv1+0VmLehEPb+isg4BGUFfA==
de-indent@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
@ -2788,7 +2770,7 @@ debug@=3.1.0, debug@~3.1.0:
dependencies:
ms "2.0.0"
debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@ -2906,11 +2888,6 @@ delegate@^3.1.2:
resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@ -2929,11 +2906,6 @@ destroy@~1.0.4:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-node@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
@ -3593,13 +3565,6 @@ fs-extra@^7.0.1:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
dependencies:
minipass "^2.6.0"
fs-write-stream-atomic@^1.0.8:
version "1.0.10"
resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
@ -3628,20 +3593,6 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
has-unicode "^2.0.0"
object-assign "^4.1.0"
signal-exit "^3.0.0"
string-width "^1.0.1"
strip-ansi "^3.0.1"
wide-align "^1.1.0"
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
@ -3849,11 +3800,6 @@ has-symbols@^1.0.0, has-symbols@^1.0.1:
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@ -4085,7 +4031,7 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
iconv-lite@0.4.24, iconv-lite@^0.4.4:
iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@ -4114,13 +4060,6 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
ignore-walk@^3.0.1:
version "3.0.3"
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
dependencies:
minimatch "^3.0.4"
ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@ -5159,21 +5098,6 @@ minimist@^1.2.0:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
dependencies:
safe-buffer "^5.1.2"
yallist "^3.0.0"
minizlib@^1.2.1:
version "1.3.3"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
dependencies:
minipass "^2.9.0"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@ -5203,7 +5127,7 @@ mkdirp@0.3.0:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x:
mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
@ -5272,15 +5196,6 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
needle@^2.2.1:
version "2.3.3"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117"
integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw==
dependencies:
debug "^3.2.6"
iconv-lite "^0.4.4"
sax "^1.2.4"
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@ -5342,22 +5257,6 @@ node-libs-browser@^2.2.1:
util "^0.11.0"
vm-browserify "^1.0.1"
node-pre-gyp@*:
version "0.14.0"
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
needle "^2.2.1"
nopt "^4.0.1"
npm-packlist "^1.1.6"
npmlog "^4.0.2"
rc "^1.2.7"
rimraf "^2.6.1"
semver "^5.3.0"
tar "^4.4.2"
node-releases@^1.1.50:
version "1.1.52"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9"
@ -5372,14 +5271,6 @@ nopt@1.0.10:
dependencies:
abbrev "1"
nopt@^4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
dependencies:
abbrev "1"
osenv "^0.1.4"
normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@ -5416,27 +5307,6 @@ normalize-url@^4.1.0:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
npm-bundled@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
dependencies:
npm-normalize-package-bin "^1.0.1"
npm-normalize-package-bin@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
npm-packlist@^1.1.6:
version "1.4.8"
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
npm-normalize-package-bin "^1.0.1"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@ -5444,16 +5314,6 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
gauge "~2.7.3"
set-blocking "~2.0.0"
nprogress@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
@ -5608,11 +5468,6 @@ os-browserify@^0.3.0:
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
os-locale@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@ -5622,19 +5477,6 @@ os-locale@^3.0.0:
lcid "^2.0.0"
mem "^4.0.0"
os-tmpdir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
osenv@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
p-cancelable@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
@ -6420,7 +6262,7 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
rc@^1.2.7, rc@^1.2.8:
rc@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@ -6430,7 +6272,7 @@ rc@^1.2.7, rc@^1.2.8:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@ -6688,7 +6530,7 @@ rgba-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
rimraf@^2.5.4, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@ -6732,7 +6574,7 @@ safe-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@^1.2.4, sax@~1.2.4:
sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@ -6783,7 +6625,7 @@ semver@7.0.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@ -6840,7 +6682,7 @@ serve-static@1.14.1:
parseurl "~1.3.3"
send "0.17.1"
set-blocking@^2.0.0, set-blocking@~2.0.0:
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@ -7166,7 +7008,7 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
string-width@^2.0.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@ -7369,19 +7211,6 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
tar@^4.4.2:
version "4.4.13"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
dependencies:
chownr "^1.1.1"
fs-minipass "^1.2.5"
minipass "^2.8.6"
minizlib "^1.2.1"
mkdirp "^0.5.0"
safe-buffer "^5.1.2"
yallist "^3.0.3"
term-size@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753"
@ -8202,13 +8031,6 @@ which@^1.2.9:
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
dependencies:
string-width "^1.0.2 || 2"
widest-line@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
@ -8413,7 +8235,7 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==