Delete tenxcloud registry
parent
f9680ae652
commit
3c0d0704f9
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
## 安装依赖
|
## 安装依赖
|
||||||
|
|
||||||
```
|
```bash
|
||||||
brew install gnu-tar
|
brew install gnu-tar
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -18,16 +18,10 @@ Docker环境,至少需要给容器分配4G内存,在低于3G内存的时候
|
||||||
|
|
||||||
需要用的的docker镜像:
|
需要用的的docker镜像:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
gcr.io/google_containers/kube-cross:v1.7.5-2
|
gcr.io/google_containers/kube-cross:v1.7.5-2
|
||||||
```
|
```
|
||||||
|
|
||||||
我将该镜像备份到时速云上了,可供大家使用:
|
|
||||||
|
|
||||||
```
|
|
||||||
index.tenxcloud.com/jimmy/kube-cross:v1.7.5-2
|
|
||||||
```
|
|
||||||
|
|
||||||
该镜像基于Ubuntu构建,大小2.15G,编译环境中包含以下软件:
|
该镜像基于Ubuntu构建,大小2.15G,编译环境中包含以下软件:
|
||||||
|
|
||||||
- Go1.7.5
|
- Go1.7.5
|
||||||
|
|
|
@ -29,9 +29,7 @@ Kubernetes官方提供了EFK的日志收集解决方案,但是这种方案并
|
||||||
|
|
||||||
![filebeat日志收集架构图](../images/filebeat-log-collector.png)
|
![filebeat日志收集架构图](../images/filebeat-log-collector.png)
|
||||||
|
|
||||||
我们创建了自己的filebeat镜像。创建过程和使用方式见https://github.com/rootsongjc/docker-images
|
我们创建了自己的filebeat镜像。创建过程和使用方式见 <https://github.com/rootsongjc/docker-images>,您可以使用该仓库中的源码创建镜像。
|
||||||
|
|
||||||
镜像地址:`index.tenxcloud.com/jimmy/filebeat:5.4.0`
|
|
||||||
|
|
||||||
## 测试
|
## 测试
|
||||||
|
|
||||||
|
|
|
@ -26,16 +26,11 @@ kubectl delete -f dashboard/
|
||||||
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
|
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
修改其中的两个镜像地址为我们的私有地址。
|
注意:其中两个镜像使用 `gcr.io` 仓库,若您无法访问该仓库请换用其他仓库。
|
||||||
|
|
||||||
- gcr.io/google_containers/kubernetes-dashboard-init-amd64:v1.0.1
|
- gcr.io/google_containers/kubernetes-dashboard-init-amd64:v1.0.1
|
||||||
- gcr.io/google_containers/kubernetes-dashboard-amd64:v1.7.1
|
- gcr.io/google_containers/kubernetes-dashboard-amd64:v1.7.1
|
||||||
|
|
||||||
这个两个镜像可以同时从**时速云**上获取:
|
|
||||||
|
|
||||||
- index.tenxcloud.com/jimmy/kubernetes-dashboard-amd64:v1.7.1
|
|
||||||
- index.tenxcloud.com/jimmy/kubernetes-dashboard-init-amd64:v1.0.1
|
|
||||||
|
|
||||||
将service type设置为`NodePort`,修改后的yaml文件见[kubernetes-dashboard.yaml](https://github.com/rootsongjc/kubernetes-handbook/tree/master/manifests/dashboard-1.7.1/kubernetes-dashboard.yaml),然后就可以部署新版本的dashboard了。
|
将service type设置为`NodePort`,修改后的yaml文件见[kubernetes-dashboard.yaml](https://github.com/rootsongjc/kubernetes-handbook/tree/master/manifests/dashboard-1.7.1/kubernetes-dashboard.yaml),然后就可以部署新版本的dashboard了。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
本文中使用的镜像、kubernetes应用的yaml配置来自我的另一个项目,请参考:https://github.com/rootsongjc/distributed-load-testing-using-kubernetes
|
本文中使用的镜像、kubernetes应用的yaml配置来自我的另一个项目,请参考:https://github.com/rootsongjc/distributed-load-testing-using-kubernetes
|
||||||
|
|
||||||
`sample-webapp` 目录下包含一个简单的web测试应用。我们将其构建为docker镜像,在kubernetes中运行。你可以自己构建,也可以直接用这个我构建好的镜像`index.tenxcloud.com/jimmy/k8s-sample-webapp:latest`。
|
`sample-webapp` 目录下包含一个简单的web测试应用。我们将其构建为docker镜像,在kubernetes中运行。
|
||||||
|
|
||||||
在kubernetes上部署sample-webapp。
|
在kubernetes上部署sample-webapp。
|
||||||
|
|
||||||
|
@ -27,21 +27,25 @@ $ kubectl create -f sample-webapp-service.yaml
|
||||||
|
|
||||||
`locust-master`和`locust-work`使用同样的docker镜像,修改cotnroller中`spec.template.spec.containers.env`字段中的value为你`sample-webapp` service的名字。
|
`locust-master`和`locust-work`使用同样的docker镜像,修改cotnroller中`spec.template.spec.containers.env`字段中的value为你`sample-webapp` service的名字。
|
||||||
|
|
||||||
|
```yaml
|
||||||
- name: TARGET_HOST
|
- name: TARGET_HOST
|
||||||
value: http://sample-webapp:8000
|
value: http://sample-webapp:8000
|
||||||
|
```
|
||||||
|
|
||||||
### 创建Controller Docker镜像(可选)
|
### 创建Controller Docker镜像(可选)
|
||||||
|
|
||||||
`locust-master`和`locust-work` controller使用的都是`locust-tasks` docker镜像。你可以直接下载`gcr.io/cloud-solutions-images/locust-tasks`,也可以自己编译。自己编译大概要花几分钟时间,镜像大小为820M。
|
`locust-master`和`locust-work` controller使用的都是`locust-tasks` docker镜像。你可以直接下载`gcr.io/cloud-solutions-images/locust-tasks`,也可以自己编译。自己编译大概要花几分钟时间,镜像大小为820M。
|
||||||
|
|
||||||
$ docker build -t index.tenxcloud.com/jimmy/locust-tasks:latest .
|
```bash
|
||||||
$ docker push index.tenxcloud.com/jimmy/locust-tasks:latest
|
$ docker build -t jimmysong/locust-tasks:latest .
|
||||||
|
$ docker push jimmysong/locust-tasks:latest
|
||||||
**注意**:我使用的是时速云的镜像仓库。
|
```
|
||||||
|
|
||||||
每个controller的yaml的`spec.template.spec.containers.image` 字段指定的是我的镜像:
|
每个controller的yaml的`spec.template.spec.containers.image` 字段指定的是我的镜像:
|
||||||
|
|
||||||
image: index.tenxcloud.com/jimmy/locust-tasks:latest
|
```ini
|
||||||
|
image: jimmysong/locust-tasks:latest
|
||||||
|
```
|
||||||
### 部署locust-master
|
### 部署locust-master
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -2,11 +2,7 @@
|
||||||
|
|
||||||
## 准备镜像
|
## 准备镜像
|
||||||
|
|
||||||
官方镜像保存在 gcr.io 中需要翻墙才能下载,为了方便大家使用,我下载后放到了[时速云](http://www.tenxcloud.com)中,为公有镜像供大家下载。
|
官方镜像保存在 gcr.io 中需要翻墙才能下载,请自行拷贝到私有仓库。
|
||||||
|
|
||||||
- index.tenxcloud.com/jimmy/heapster-amd64:v1.3.0-beta.1
|
|
||||||
- index.tenxcloud.com/jimmy/heapster-influxdb-amd64:v1.1.1
|
|
||||||
- index.tenxcloud.com/jimmy/heapster-grafana-amd64:v4.0.2
|
|
||||||
|
|
||||||
## 准备YAML文件
|
## 准备YAML文件
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。
|
所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。
|
||||||
|
|
||||||
**注:本文档中不包括docker和私有镜像仓库的安装,安装说明中使用的镜像来自 Google Cloud Platform,为了方便国内用户下载,我将其克隆并上传到了 [时速云镜像市场](https://tenxcloud.com/),搜索”Jimmy“,供大家免费下载。**
|
**注:本文档中不包括docker和私有镜像仓库的安装,安装说明中使用的镜像来自 Google Cloud Platform,中国大陆用户若无法访问请自行选择其他镜像仓库备份。**
|
||||||
|
|
||||||
**欲下载最新版本的官方镜像请访问 [Google 云平台容器注册表](https://console.cloud.google.com/gcr/images/google-containers/GLOBAL)。**
|
**欲下载最新版本的官方镜像请访问 [Google 云平台容器注册表](https://console.cloud.google.com/gcr/images/google-containers/GLOBAL)。**
|
||||||
|
|
||||||
|
|
|
@ -4,28 +4,22 @@
|
||||||
|
|
||||||
该插件直接使用kubernetes部署,官方的配置文件中包含以下镜像:
|
该插件直接使用kubernetes部署,官方的配置文件中包含以下镜像:
|
||||||
|
|
||||||
|
```ini
|
||||||
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
||||||
gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
|
gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
|
||||||
gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
|
gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
|
||||||
|
```
|
||||||
我clone了上述镜像,上传到我的私有镜像仓库:
|
我clone了上述镜像,上传到我的私有镜像仓库:
|
||||||
|
|
||||||
```
|
```ini
|
||||||
harbor-001.jimmysong.io/library/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
harbor-001.jimmysong.io/library/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
||||||
harbor-001.jimmysong.io/library/k8s-dns-kube-dns-amd64:1.14.1
|
harbor-001.jimmysong.io/library/k8s-dns-kube-dns-amd64:1.14.1
|
||||||
harbor-001.jimmysong.io/library/k8s-dns-sidecar-amd64:1.14.1
|
harbor-001.jimmysong.io/library/k8s-dns-sidecar-amd64:1.14.1
|
||||||
```
|
```
|
||||||
|
|
||||||
同时上传了一份到时速云备份:
|
|
||||||
|
|
||||||
```
|
|
||||||
index.tenxcloud.com/jimmy/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
|
||||||
index.tenxcloud.com/jimmy/k8s-dns-kube-dns-amd64:1.14.1
|
|
||||||
index.tenxcloud.com/jimmy/k8s-dns-sidecar-amd64:1.14.1
|
|
||||||
```
|
|
||||||
|
|
||||||
以下yaml配置文件中使用的是私有镜像仓库中的镜像。
|
以下yaml配置文件中使用的是私有镜像仓库中的镜像。
|
||||||
|
|
||||||
```
|
``` ini
|
||||||
kubedns-cm.yaml
|
kubedns-cm.yaml
|
||||||
kubedns-sa.yaml
|
kubedns-sa.yaml
|
||||||
kubedns-controller.yaml
|
kubedns-controller.yaml
|
||||||
|
|
|
@ -355,13 +355,6 @@ Test Suite Passed
|
||||||
- gcr.io/google_containers/pause-amd64:3.0
|
- gcr.io/google_containers/pause-amd64:3.0
|
||||||
- gcr.io/google_containers/serve_hostname:v1.4
|
- gcr.io/google_containers/serve_hostname:v1.4
|
||||||
|
|
||||||
时速云镜像地址:
|
|
||||||
|
|
||||||
- index.tenxcloud.com/jimmy/pause-amd64:3.0
|
|
||||||
- index.tenxcloud.com/jimmy/serve_hostname:v1.4
|
|
||||||
|
|
||||||
将镜像pull到本地后重新打tag。
|
|
||||||
|
|
||||||
## Locust测试
|
## Locust测试
|
||||||
|
|
||||||
请求统计
|
请求统计
|
||||||
|
|
|
@ -12,12 +12,7 @@
|
||||||
- gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.15
|
- gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.15
|
||||||
- gcr.io/google_containers/defaultbackend:1.3
|
- gcr.io/google_containers/defaultbackend:1.3
|
||||||
|
|
||||||
gcr.io中的那个两个镜像我复制了一份到时速云,可供大家下载:
|
所有的安装时需要的配置保存在[../manifests/nginx-ingress](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/nginx-ingress)目录下。
|
||||||
|
|
||||||
- index.tenxcloud.com/jimmy/defaultbackend:1.3
|
|
||||||
- index.tenxcloud.com/jimmy/nginx-ingress-controller:0.9.0-beta.15
|
|
||||||
|
|
||||||
Docker hub上的那个镜像可以直接下载,所有的安装时需要的配置保存在[../manifests/nginx-ingress](https://github.com/rootsongjc/kubernetes-handbook/blob/master/manifests/nginx-ingress)目录下。
|
|
||||||
|
|
||||||
## 步骤详解
|
## 步骤详解
|
||||||
|
|
||||||
|
|
|
@ -234,7 +234,7 @@ KUBELET_ARGS="--cgroup-driver=systemd --cluster-dns=10.254.0.2 --experimental-bo
|
||||||
+ `--cluster-dns` 指定 kubedns 的 Service IP(可以先分配,后续创建 kubedns 服务时指定该 IP),`--cluster-domain` 指定域名后缀,这两个参数同时指定后才会生效;
|
+ `--cluster-dns` 指定 kubedns 的 Service IP(可以先分配,后续创建 kubedns 服务时指定该 IP),`--cluster-domain` 指定域名后缀,这两个参数同时指定后才会生效;
|
||||||
+ `--cluster-domain` 指定 pod 启动时 `/etc/resolve.conf` 文件中的 `search domain` ,起初我们将其配置成了 `cluster.local.`,这样在解析 service 的 DNS 名称时是正常的,可是在解析 headless service 中的 FQDN pod name 的时候却错误,因此我们将其修改为 `cluster.local`,去掉最后面的 ”点号“ 就可以解决该问题,关于 kubernetes 中的域名/服务名称解析请参见我的另一篇文章。
|
+ `--cluster-domain` 指定 pod 启动时 `/etc/resolve.conf` 文件中的 `search domain` ,起初我们将其配置成了 `cluster.local.`,这样在解析 service 的 DNS 名称时是正常的,可是在解析 headless service 中的 FQDN pod name 的时候却错误,因此我们将其修改为 `cluster.local`,去掉最后面的 ”点号“ 就可以解决该问题,关于 kubernetes 中的域名/服务名称解析请参见我的另一篇文章。
|
||||||
+ `--kubeconfig=/etc/kubernetes/kubelet.kubeconfig `中指定的`kubelet.kubeconfig`文件在第一次启动kubelet之前并不存在,请看下文,当通过CSR请求后会自动生成`kubelet.kubeconfig`文件,如果你的节点上已经生成了`~/.kube/config`文件,你可以将该文件拷贝到该路径下,并重命名为`kubelet.kubeconfig`,所有node节点可以共用同一个kubelet.kubeconfig文件,这样新添加的节点就不需要再创建CSR请求就能自动添加到kubernetes集群中。同样,在任意能够访问到kubernetes集群的主机上使用`kubectl --kubeconfig`命令操作集群时,只要使用`~/.kube/config`文件就可以通过权限认证,因为这里面已经有认证信息并认为你是admin用户,对集群拥有所有权限。
|
+ `--kubeconfig=/etc/kubernetes/kubelet.kubeconfig `中指定的`kubelet.kubeconfig`文件在第一次启动kubelet之前并不存在,请看下文,当通过CSR请求后会自动生成`kubelet.kubeconfig`文件,如果你的节点上已经生成了`~/.kube/config`文件,你可以将该文件拷贝到该路径下,并重命名为`kubelet.kubeconfig`,所有node节点可以共用同一个kubelet.kubeconfig文件,这样新添加的节点就不需要再创建CSR请求就能自动添加到kubernetes集群中。同样,在任意能够访问到kubernetes集群的主机上使用`kubectl --kubeconfig`命令操作集群时,只要使用`~/.kube/config`文件就可以通过权限认证,因为这里面已经有认证信息并认为你是admin用户,对集群拥有所有权限。
|
||||||
+ `KUBELET_POD_INFRA_CONTAINER` 是基础镜像容器,这里我用的是私有镜像仓库地址,**大家部署的时候需要修改为自己的镜像**。我上传了一个到时速云上,可以直接 `docker pull index.tenxcloud.com/jimmy/pod-infrastructure` 下载。`pod-infrastructure`镜像是Redhat制作的,大小接近80M,下载比较耗时,其实该镜像并不运行什么具体进程,可以使用Google的pause镜像`gcr.io/google_containers/pause-amd64:3.0`,这个镜像只有300多K,或者通过DockerHub下载`jimmysong/pause-amd64:3.0`。
|
+ `KUBELET_POD_INFRA_CONTAINER` 是基础镜像容器,这里我用的是私有镜像仓库地址,**大家部署的时候需要修改为自己的镜像**。`pod-infrastructure`镜像是Redhat制作的,大小接近80M,下载比较耗时,其实该镜像并不运行什么具体进程,可以使用Google的pause镜像`gcr.io/google_containers/pause-amd64:3.0`,这个镜像只有300多K,或者通过DockerHub下载`jimmysong/pause-amd64:3.0`。
|
||||||
|
|
||||||
完整 unit 见 [kubelet.service](../systemd/kubelet.service)
|
完整 unit 见 [kubelet.service](../systemd/kubelet.service)
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,6 @@ build:
|
||||||
GOOS=linux GOARCH=amd64 go build -o hello${TAG} main.go
|
GOOS=linux GOARCH=amd64 go build -o hello${TAG} main.go
|
||||||
docker build -t harbor-001.jimmysong.io/library/hello:${TAG} .
|
docker build -t harbor-001.jimmysong.io/library/hello:${TAG} .
|
||||||
|
|
||||||
# Push to tenxcloud
|
|
||||||
push:
|
push:
|
||||||
docker push harbor-001.jimmysong.io/library/hello:${TAG}
|
docker push harbor-001.jimmysong.io/library/hello:${TAG}
|
||||||
|
|
||||||
|
|
|
@ -12,16 +12,6 @@
|
||||||
- harbor-001.jimmysong.io/library/dockermuenster-caddy:0.9.3
|
- harbor-001.jimmysong.io/library/dockermuenster-caddy:0.9.3
|
||||||
- harbor-001.jimmysong.io/library/prom-node-exporter:v0.14.0
|
- harbor-001.jimmysong.io/library/prom-node-exporter:v0.14.0
|
||||||
|
|
||||||
同时备份到时速云:
|
|
||||||
|
|
||||||
- index.tenxcloud.com/jimmy/prometheus-alertmanager:v0.7.1
|
|
||||||
- index.tenxcloud.com/jimmy/grafana:4.2.0
|
|
||||||
- index.tenxcloud.com/jimmy/giantswarm-tiny-tools:latest
|
|
||||||
- index.tenxcloud.com/jimmy/prom-prometheus:v1.7.0
|
|
||||||
- index.tenxcloud.com/jimmy/kube-state-metrics:v1.0.1
|
|
||||||
- index.tenxcloud.com/jimmy/dockermuenster-caddy:0.9.3
|
|
||||||
- index.tenxcloud.com/jimmy/prom-node-exporter:v0.14.0
|
|
||||||
|
|
||||||
**注**:所有镜像都是从官方镜像仓库下载下。
|
**注**:所有镜像都是从官方镜像仓库下载下。
|
||||||
|
|
||||||
## 部署
|
## 部署
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
# Spark standalone on Kubernetes
|
# Spark standalone on Kubernetes
|
||||||
|
|
||||||
该项目是基于 Spark standalone 模式,对资源的分配调度还有作业状态查询的功能实在有限,对于让 spark 使用真正原生的 kubernetes 资源调度推荐大家尝试 https://github.com/apache-spark-on-k8s/
|
该项目是基于 Spark standalone 模式,对资源的分配调度还有作业状态查询的功能实在有限,对于让 spark 使用真正原生的 kubernetes 资源调度推荐大家尝试 <https://github.com/apache-spark-on-k8s/>。
|
||||||
|
|
||||||
本文中使用的镜像我已编译好上传到了时速云上,大家可以直接下载。
|
|
||||||
|
|
||||||
```
|
|
||||||
index.tenxcloud.com/jimmy/spark:1.5.2_v1
|
|
||||||
index.tenxcloud.com/jimmy/zeppelin:0.7.1
|
|
||||||
```
|
|
||||||
|
|
||||||
代码和使用文档见Github地址:https://github.com/rootsongjc/spark-on-kubernetes
|
代码和使用文档见Github地址:https://github.com/rootsongjc/spark-on-kubernetes
|
||||||
|
|
||||||
本文中用到的 yaml 文件可以在 `manifests/spark-standalone` 目录下找到,也可以在上面的 https://github.com/rootsongjc/spark-on-kubernetes/ 项目的 manifests 目录下找到。
|
本文中用到的 yaml 文件可以在 `manifests/spark-standalone` 目录下找到,也可以在上面的 <https://github.com/rootsongjc/spark-on-kubernetes/> 项目的 manifests 目录下找到。
|
||||||
|
|
||||||
**注意**:时速云上本来已经提供的镜像 `index.tenxcloud.com/google_containers/spark:1.5.2_v1` ,但是该镜像似乎有问题,下载总是失败。
|
|
||||||
|
|
||||||
## 在Kubernetes上启动spark
|
## 在Kubernetes上启动spark
|
||||||
|
|
||||||
|
@ -21,7 +12,7 @@ index.tenxcloud.com/jimmy/zeppelin:0.7.1
|
||||||
|
|
||||||
所有yaml文件都在`manifests`目录下。
|
所有yaml文件都在`manifests`目录下。
|
||||||
|
|
||||||
```
|
```bash
|
||||||
$ kubectl create -f manifests/
|
$ kubectl create -f manifests/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -35,7 +26,7 @@ $ kubectl create -f manifests/
|
||||||
|
|
||||||
通过上面对ingress的配置暴露服务,需要修改本机的/etc/hosts文件,增加以下配置,使其能够解析到上述service。
|
通过上面对ingress的配置暴露服务,需要修改本机的/etc/hosts文件,增加以下配置,使其能够解析到上述service。
|
||||||
|
|
||||||
```
|
```ini
|
||||||
172.20.0.119 zeppelin.traefik.io
|
172.20.0.119 zeppelin.traefik.io
|
||||||
172.20.0.119 spark.traefik.io
|
172.20.0.119 spark.traefik.io
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue