Fix broken links
parent
251f3c73ba
commit
199fa0d624
|
@ -79,7 +79,6 @@ Kubernetes和Cloud Native相关网站、专栏、博客等。
|
||||||
- [rancher](https://rancher.com/blog/)
|
- [rancher](https://rancher.com/blog/)
|
||||||
- [sysdig](https://sysdig.com/blog/)
|
- [sysdig](https://sysdig.com/blog/)
|
||||||
- [spinnaker](https://blog.spinnaker.io)
|
- [spinnaker](https://blog.spinnaker.io)
|
||||||
- [supergiant](https://supergiant.io/blog)
|
|
||||||
- [twistlock](https://www.twistlock.com/blog/)
|
- [twistlock](https://www.twistlock.com/blog/)
|
||||||
- [vamp](https://medium.com/vamp-io)
|
- [vamp](https://medium.com/vamp-io)
|
||||||
- [weave](https://www.weave.works/blog/)
|
- [weave](https://www.weave.works/blog/)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
当我第一眼看到 [Ballerina](https://ballerina.io) 还真有点惊艳的感觉。Ballerina 这个单词的意思是“芭蕾舞女演员”。我想他们之所以给公司和这们语言起这个名字,可能是希望它成为云原生这个大舞台中,Ballerina 能像一个灵活的芭蕾舞者一样轻松自如吧!
|
当我第一眼看到 [Ballerina](https://ballerina.io) 还真有点惊艳的感觉。Ballerina 这个单词的意思是“芭蕾舞女演员”。我想他们之所以给公司和这们语言起这个名字,可能是希望它成为云原生这个大舞台中,Ballerina 能像一个灵活的芭蕾舞者一样轻松自如吧!
|
||||||
|
|
||||||
Ballerina 是一款开源的编译式的强类型语言,该语言本身的代码可以通过 [GitHub](https://github.com/ballerina-platform/ballerina-lang) 上获取。我们可以通过 Ballerina 官网上的[设计哲学](https://ballerina.io/philosophy/)页面来对这门云原生编程语言一探究竟。
|
Ballerina 是一款开源的编译式的强类型语言,该语言本身的代码可以通过 [GitHub](https://github.com/ballerina-platform/ballerina-lang) 上获取。我们可以通过 Ballerina 官网上的设计哲学页面来对这门云原生编程语言一探究竟。
|
||||||
|
|
||||||
![云原生编程语言ballerina](../images/philosophy-page-diagrams-top.png)
|
![云原生编程语言ballerina](../images/philosophy-page-diagrams-top.png)
|
||||||
|
|
||||||
|
|
|
@ -388,4 +388,3 @@ ENV 是在容器启动的时候注入的,启动之后 kubernetes 就不会再
|
||||||
- [ConfigMap | kubernetes handbook - jimmysong.io](https://jimmysong.io/kubernetes-handbook/concepts/configmap.html)
|
- [ConfigMap | kubernetes handbook - jimmysong.io](https://jimmysong.io/kubernetes-handbook/concepts/configmap.html)
|
||||||
- [创建高可用ectd集群 | Kubernetes handbook - jimmysong.io](https://jimmysong.io/kubernetes-handbook/practice/etcd-cluster-installation.html)
|
- [创建高可用ectd集群 | Kubernetes handbook - jimmysong.io](https://jimmysong.io/kubernetes-handbook/practice/etcd-cluster-installation.html)
|
||||||
- [Kubernetes中的服务发现与docker容器间的环境变量传递源码探究](https://jimmysong.io/posts/exploring-kubernetes-env-with-docker/)
|
- [Kubernetes中的服务发现与docker容器间的环境变量传递源码探究](https://jimmysong.io/posts/exploring-kubernetes-env-with-docker/)
|
||||||
- [Automatically Roll Deployments When ConfigMaps or Secrets change](https://github.com/kubernetes/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change)
|
|
||||||
|
|
|
@ -265,7 +265,7 @@ chmod +x ./kubectl
|
||||||
|
|
||||||
如果不是, 请安装[更新版本的helm CLI](https://github.com/kubernetes/helm#install)并运行`helm init --upgrade`。
|
如果不是, 请安装[更新版本的helm CLI](https://github.com/kubernetes/helm#install)并运行`helm init --upgrade`。
|
||||||
|
|
||||||
有关安装的更多详细信息,请参阅 [Helm安装说明](https://github.com/kubernetes/helm/blob/master/docs/install.md)。
|
有关安装的更多详细信息,请参阅 Helm安装说明。
|
||||||
|
|
||||||
#### Tiller 权限
|
#### Tiller 权限
|
||||||
Tiller是Helm的服务端组件。默认情况下, helm init将Tiller pod安装到kube-system名称空间中,并将Tiller配置为使用default服务帐户(service account)。
|
Tiller是Helm的服务端组件。默认情况下, helm init将Tiller pod安装到kube-system名称空间中,并将Tiller配置为使用default服务帐户(service account)。
|
||||||
|
@ -278,9 +278,9 @@ kubectl create clusterrolebinding tiller-cluster-admin \
|
||||||
--serviceaccount=kube-system:default
|
--serviceaccount=kube-system:default
|
||||||
```
|
```
|
||||||
### Helm Repository设置
|
### Helm Repository设置
|
||||||
Service Catalog很容易通过[Helm chart](https://github.com/kubernetes/helm/blob/master/docs/charts.md)安装 。
|
Service Catalog很容易通过 Helm chart 安装 。
|
||||||
|
|
||||||
此chart位于 [chart repository](https://github.com/kubernetes/helm/blob/master/docs/chart_repository.md)中。将此repository添加到本地计算机:
|
此chart位于 chart repository 中。将此repository添加到本地计算机:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
helm repo add svc-cat https://svc-catalog-charts.storage.googleapis.com
|
helm repo add svc-cat https://svc-catalog-charts.storage.googleapis.com
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
| [client-python](https://github.com/kubernetes-incubator/client-python) | python客户端,kubernetes-incubator | 官方支持 |
|
| [client-python](https://github.com/kubernetes-incubator/client-python) | python客户端,kubernetes-incubator | 官方支持 |
|
||||||
| [Java client](https://github.com/fabric8io/kubernetes-client) | fabric8中的一部分,kubernetes的java客户端 | redhat |
|
| [Java client](https://github.com/fabric8io/kubernetes-client) | fabric8中的一部分,kubernetes的java客户端 | redhat |
|
||||||
|
|
||||||
下面,我们基于[client-go](https://github.com/kubernetes/client-go),对Deployment升级镜像的步骤进行了定制,通过命令行传递一个Deployment的名字、应用容器名和新image名字的方式来升级。代码和使用方式见 https://github.com/rootsongjc/kubernetes-client-go-sample 。
|
下面,我们基于[client-go](https://github.com/kubernetes/client-go),对Deployment升级镜像的步骤进行了定制,通过命令行传递一个Deployment的名字、应用容器名和新image名字的方式来升级。
|
||||||
|
|
||||||
## kubernetes-client-go-sample
|
## kubernetes-client-go-sample
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
|
|
||||||
![将单体应用迁移到云原生(图片来自DevOpsDay Toronto)](../images/migrating-monolith-to-kubernetes.jpg)
|
![将单体应用迁移到云原生(图片来自DevOpsDay Toronto)](../images/migrating-monolith-to-kubernetes.jpg)
|
||||||
|
|
||||||
接下来我们将以 Spark on YARN with kubernetes 为例来说明,该例子足够复杂也很有典型性,了解了这个例子可以帮助大家将自己的应用迁移到 kubernetes 集群上去,代码和配置文件可以在 [这里](https://github.com/rootsongjc/kube-yarn) 找到(本文中加入 Spark 的配置,代码中并没有包含,读者可以自己配置)。
|
接下来我们将以 Spark on YARN with kubernetes 为例来说明,该例子足够复杂也很有典型性,了解了这个例子可以帮助大家将自己的应用迁移到 kubernetes 集群上去。
|
||||||
|
|
||||||
下图即整个架构的示意图,代码和详细配置文件请参考 [kube-yarn](https://github.com/rootsongjc/kube-yarn)(不包含 ingress、spark 配置),所有的进程管理和容器扩容直接使用 Makefile。
|
下图即整个架构的示意图,所有的进程管理和容器扩容直接使用 Makefile。
|
||||||
|
|
||||||
![spark on yarn with kubernetes](../images/spark-on-yarn-with-kubernetes.png)
|
![spark on yarn with kubernetes](../images/spark-on-yarn-with-kubernetes.png)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
Helm通过从本地读取Kubernetes配置文件来查找Kubernetes集群; 确保文件已下载和且helm客户端可以访问。
|
Helm通过从本地读取Kubernetes配置文件来查找Kubernetes集群; 确保文件已下载和且helm客户端可以访问。
|
||||||
|
|
||||||
Kubernetes群集必须配置并运行Tiller服务器,并且须将本地Helm客户端网络可达。查看[init](https://github.com/kubernetes/helm/blob/master/docs/helm/helm_init.md)的Helm文档获取帮助。要在本地运行Tiller并将Helm连接到它,请运行如下命令(此命令会在Kubernetes集群部署一个tiller实例):
|
Kubernetes群集必须配置并运行Tiller服务器,并且须将本地Helm客户端网络可达。要在本地运行Tiller并将Helm连接到它,请运行如下命令(此命令会在Kubernetes集群部署一个tiller实例):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ helm init
|
$ helm init
|
||||||
|
|
|
@ -119,7 +119,6 @@ NAME STATUS ROLES AGE VERSION
|
||||||
|
|
||||||
- [Cluster Upgrade #2524](https://github.com/kubernetes/kubernetes/issues/2524)
|
- [Cluster Upgrade #2524](https://github.com/kubernetes/kubernetes/issues/2524)
|
||||||
- [Upgrading self-hosted Kubernetes](https://coreos.com/matchbox/docs/latest/bootkube-upgrades.html)
|
- [Upgrading self-hosted Kubernetes](https://coreos.com/matchbox/docs/latest/bootkube-upgrades.html)
|
||||||
- [Upgrading Kubernetes - kops](https://github.com/kubernetes/kops/blob/master/docs/upgrade.md)
|
|
||||||
- [How to Upgrade a Kubernetes Cluster With No Downtime](https://medium.com/retailmenot-engineering/zero-downtime-kubernetes-cluster-upgrades-aab4cac943d2)
|
- [How to Upgrade a Kubernetes Cluster With No Downtime](https://medium.com/retailmenot-engineering/zero-downtime-kubernetes-cluster-upgrades-aab4cac943d2)
|
||||||
- [manual upgrade/downgrade testing for Kubernetes 1.6 - google group](https://groups.google.com/forum/#!topic/kubernetes-dev/jDbGKAsfo4Q)
|
- [manual upgrade/downgrade testing for Kubernetes 1.6 - google group](https://groups.google.com/forum/#!topic/kubernetes-dev/jDbGKAsfo4Q)
|
||||||
- [Notes/Instructions for Manual Upgrade Testing1.5 -> 1.6](https://docs.google.com/document/d/1DtQFhxmKSZJJ_yv8ttweqotburHHZWxaCYnFbjLDA5g/edit)
|
- [Notes/Instructions for Manual Upgrade Testing1.5 -> 1.6](https://docs.google.com/document/d/1DtQFhxmKSZJJ_yv8ttweqotburHHZWxaCYnFbjLDA5g/edit)
|
||||||
|
|
|
@ -18,7 +18,7 @@ Spark原生支持standalone、mesos和YARN的调度方式,当前kubernetes社
|
||||||
|
|
||||||
## Spark on Yarn
|
## Spark on Yarn
|
||||||
|
|
||||||
使用StatefulSet和Headless serverless来实现,请参考 [Spark on Yarn](https://github.com/rootsongjc/kube-yarn/tree/sz-test)
|
使用StatefulSet和Headless serverless来实现。
|
||||||
|
|
||||||
这种模式中kubernetes依然不负责spark应用的调度,而只是将Yarn换了一个部署环境而已。
|
这种模式中kubernetes依然不负责spark应用的调度,而只是将Yarn换了一个部署环境而已。
|
||||||
|
|
||||||
|
|
|
@ -256,7 +256,7 @@ Istio 在 Pod 中注入的 Init 容器名为 `istio-init`,我们在上面 Isti
|
||||||
-p 15001 -u 1337 -m REDIRECT -i '*' -x "" -b 9080 -d ""
|
-p 15001 -u 1337 -m REDIRECT -i '*' -x "" -b 9080 -d ""
|
||||||
```
|
```
|
||||||
|
|
||||||
我们再检查下该容器的 [Dockerfile](https://github.com/istio/istio/blob/master/pilot/docker/Dockerfile.proxy_init) 看看 `ENTRYPOINT` 是什么以确定启动时执行的命令。
|
我们再检查下该容器的 Dockerfile 看看 `ENTRYPOINT` 是什么以确定启动时执行的命令。
|
||||||
|
|
||||||
```docker
|
```docker
|
||||||
FROM ubuntu:xenial
|
FROM ubuntu:xenial
|
||||||
|
|
Loading…
Reference in New Issue