fix broken links
parent
2e6f11567f
commit
88b3704891
|
@ -1,6 +1,6 @@
|
||||||
# 云原生应用之路——从 Kubernetes 到云原生
|
# 云原生应用之路——从 Kubernetes 到云原生
|
||||||
|
|
||||||
注:本文根据笔者在 [ArchSummit 2017 北京站](http://bj2017.archsummit.com/presentation/306) 和 [数人云 & TalkingData 合办的 Service Mesh is coming meetup](https://www.kubernetes.org.cn/3211.html) 中分享的话题《从 Kubernetes 到云原生—— 云原生应用之路》改写而成。
|
注:本文根据笔者在 [ArchSummit 2017 北京站](http://bj2017.archsummit.com/presentation/306) 和数人云 & TalkingData 合办的 Service Mesh is coming meetup 中分享的话题《从 Kubernetes 到云原生—— 云原生应用之路》改写而成。
|
||||||
|
|
||||||
本文简要介绍了容器技术发展的路径,为何 Kubernetes 的出现是容器技术发展到这一步的必然选择,而为何 Kubernetes 又将成为云原生应用的基石。
|
本文简要介绍了容器技术发展的路径,为何 Kubernetes 的出现是容器技术发展到这一步的必然选择,而为何 Kubernetes 又将成为云原生应用的基石。
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ CNCF(云原生计算基金会)给出了云原生应用的三大特征:
|
||||||
|
|
||||||
**迁移到云架构**
|
**迁移到云架构**
|
||||||
|
|
||||||
迁移到云端架构,相对单体架构来说会带来很多挑战。比如自动的持续集成与发布、服务监控的变革、服务暴露、权限的管控等。这些具体细节请参考 [Kubernetes Handbook](https://jimmysong.io/kubernetes-handbook) 中的说明,在此就不细节展开,另外推荐一本我翻译的由 Pivotal 出品的电子书——[《迁移到云原生应用架构》](https://tanzu.vmware.com/content/ebooks/migrating-to-cloud-native-application-architectures),推荐大家阅读。
|
迁移到云端架构,相对单体架构来说会带来很多挑战。比如自动的持续集成与发布、服务监控的变革、服务暴露、权限的管控等。这些具体细节请参考 [Kubernetes Handbook](https://jimmysong.io/kubernetes-handbook) 中的说明,在此就不细节展开,另外推荐一本我翻译的由 Pivotal 出品的电子书——《迁移到云原生应用架构》,推荐大家阅读。
|
||||||
|
|
||||||
## 服务网格
|
## 服务网格
|
||||||
|
|
||||||
|
|
|
@ -385,15 +385,11 @@ Kubernetes 作为云原生计算的基本组件之一,自开源以来热度与
|
||||||
|
|
||||||
监控分类示意图:
|
监控分类示意图:
|
||||||
|
|
||||||
![Grafana 界面示意图 1](../images/kubernetes-devops-example-grafana-1.png)
|
![Kubernetes 集群全局监控图 1](../images/kubernetes-devops-example-grafana-1.png)
|
||||||
|
|
||||||
Kubernetes 集群全局监控图 1
|
|
||||||
|
|
||||||
该监控图可以看到集群硬件使用情况。
|
该监控图可以看到集群硬件使用情况。
|
||||||
|
|
||||||
![Grafana 界面示意图 2](../images/kubernetes-devops-example-grafana-2.png)
|
![Kubernetes 全局监控图 2](../images/kubernetes-devops-example-grafana-2.png)
|
||||||
|
|
||||||
Kubernetes 全局监控图 2
|
|
||||||
|
|
||||||
该监控可以看到单个用户的 namespace 下的所有资源的使用情况。
|
该监控可以看到单个用户的 namespace 下的所有资源的使用情况。
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ EndpointSlice 中的每个端点都可以包含一定的拓扑信息。 拓扑
|
||||||
|
|
||||||
## 启用拓扑感知
|
## 启用拓扑感知
|
||||||
|
|
||||||
请参考[启用拓扑感知提示](https://kubernetes.io/zh/docs/tasks/administer-cluster/enabling-topology-aware-hints/)开启此功能。请启用 kube-apiserver、kube-controller-manager、和 kube-proxy 的[特性门控](https://kubernetes.io/zh/docs/reference/command-line-tools-reference/feature-gates/) `TopologyAwareHints`。通过把 Service 中的注解 `service.kubernetes.io/topology-aware-hints` 的值设置为 `auto`, 来激活服务的拓扑感知提示功能。 这告诉 EndpointSlice 控制器在它认为安全的时候来设置拓扑提示。kube-proxy 组件依据 EndpointSlice 控制器设置的提示,过滤由它负责路由的端点。
|
请启用 kube-apiserver、kube-controller-manager、和 kube-proxy 的[特性门控](https://kubernetes.io/zh/docs/reference/command-line-tools-reference/feature-gates/) `TopologyAwareHints`。通过把 Service 中的注解 `service.kubernetes.io/topology-aware-hints` 的值设置为 `auto`, 来激活服务的拓扑感知提示功能。 这告诉 EndpointSlice 控制器在它认为安全的时候来设置拓扑提示。kube-proxy 组件依据 EndpointSlice 控制器设置的提示,过滤由它负责路由的端点。
|
||||||
|
|
||||||
由 EndpointSlice 控制器提供提示信息后 EndpointSlice 的示例如下:
|
由 EndpointSlice 控制器提供提示信息后 EndpointSlice 的示例如下:
|
||||||
|
|
||||||
|
@ -88,6 +88,5 @@ endpoints:
|
||||||
|
|
||||||
- [使用拓扑键实现拓扑感知的流量路由 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/service-topology/)
|
- [使用拓扑键实现拓扑感知的流量路由 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/service-topology/)
|
||||||
- [端点切片 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/endpoint-slices/)
|
- [端点切片 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/endpoint-slices/)
|
||||||
- [启用拓扑感知提示 - kubernetes.io](https://kubernetes.io/zh/docs/tasks/administer-cluster/enabling-topology-aware-hints/)
|
|
||||||
- [拓扑感知提示 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/topology-aware-hints/)
|
- [拓扑感知提示 - kubernetes.io](https://kubernetes.io/zh/docs/concepts/services-networking/topology-aware-hints/)
|
||||||
|
|
||||||
|
|
|
@ -593,7 +593,7 @@ spec:
|
||||||
|
|
||||||
### vsphereVolume
|
### vsphereVolume
|
||||||
|
|
||||||
**先决条件**:配置了 vSphere Cloud Provider 的 Kubernetes。有关云提供商的配置,请参阅 [vSphere 入门指南](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/)。
|
**先决条件**:配置了 vSphere Cloud Provider 的 Kubernetes。
|
||||||
|
|
||||||
`vsphereVolume` 用于将 vSphere VMDK 卷挂载到 Pod 中。卷的内容在卸载时会被保留。支持 VMFS 和 VSAN 数据存储。
|
`vsphereVolume` 用于将 vSphere VMDK 卷挂载到 Pod 中。卷的内容在卸载时会被保留。支持 VMFS 和 VSAN 数据存储。
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# 构建私有Chart仓库
|
# 构建私有 Chart 仓库
|
||||||
|
|
||||||
使用Chart便于封装和管理kubernetes中的应用,因此当企业内部的应用多了以后,互相依赖、部署环境复杂之后,原先的直接使用yaml文件的管理方式已经不再适应生产的需要,因此我们有必要构建自己的chart仓库。本文中我们将使用 GitHub Pages 来构建我们自己的 chart 仓库。
|
使用Chart便于封装和管理kubernetes中的应用,因此当企业内部的应用多了以后,互相依赖、部署环境复杂之后,原先的直接使用yaml文件的管理方式已经不再适应生产的需要,因此我们有必要构建自己的chart仓库。本文中我们将使用 GitHub Pages 来构建我们自己的 chart 仓库。
|
||||||
|
|
||||||
|
@ -132,7 +132,6 @@ $ helm install monocular/monocular
|
||||||
|
|
||||||
## 参考
|
## 参考
|
||||||
|
|
||||||
- [Monocular UI](https://github.com/kubernetes-helm/monocular)
|
- [Monocular UI - github.com](https://github.com/kubernetes-helm/monocular)
|
||||||
- [简化Kubernetes应用部署工具-Helm之应用部署](https://www.kubernetes.org.cn/2706.html)
|
- [Speed deployment on Kubernetes with Helm Chart – Quick YAML example from scratch - ibm.com](https://www.ibm.com/blogs/bluemix/2017/10/quick-example-helm-chart-for-kubernetes/)
|
||||||
- [Speed deployment on Kubernetes with Helm Chart – Quick YAML example from scratch](https://www.ibm.com/blogs/bluemix/2017/10/quick-example-helm-chart-for-kubernetes/)
|
- [Using a private github repo as helm chart repo (https access) - medium.com](https://medium.com/@kavehmz/using-a-private-github-repo-as-helm-chart-repo-https-access-95629b2af27c)
|
||||||
- [Using a private github repo as helm chart repo (https access)](https://medium.com/@kavehmz/using-a-private-github-repo-as-helm-chart-repo-https-access-95629b2af27c)
|
|
||||||
|
|
|
@ -299,4 +299,3 @@ spec:
|
||||||
|
|
||||||
- [Kubernetes Federation v2 - github.com](https://github.com/kubernetes-sigs/kubefed)
|
- [Kubernetes Federation v2 - github.com](https://github.com/kubernetes-sigs/kubefed)
|
||||||
- [Kubernetes Federation Evolution - kuberentes.io](https://kubernetes.io/blog/2018/12/12/kubernetes-federation-evolution/)
|
- [Kubernetes Federation Evolution - kuberentes.io](https://kubernetes.io/blog/2018/12/12/kubernetes-federation-evolution/)
|
||||||
- [KubeFed: Kubernetes Federation v2 详解 - kuberentes.org.cn](https://www.kubernetes.org.cn/5702.html)
|
|
|
@ -12,7 +12,7 @@ GlusterFS 是一个分布式文件系统,内置了原生协议(GlusterFS)
|
||||||
|
|
||||||
### 部署 OpenShift
|
### 部署 OpenShift
|
||||||
|
|
||||||
首先你需要先部署 OpenShift。最有效率的方式是直接在虚拟机中部署一个 All-in-One 环境,部署指南见 [the “OpenShift Enterprise 3.4 all-in-one Lab Environment” article.](https://keithtenzer.com/2017/03/13/openshift-enterprise-3-4-all-in-one-lab-environment/)。
|
首先你需要先部署 OpenShift。最有效率的方式是直接在虚拟机中部署一个 All-in-One 环境。
|
||||||
|
|
||||||
确保你的 OpenShift 虚拟机可以解析外部域名。编辑 `/etc/dnsmasq.conf` 文件,增加下面的 Google DNS:
|
确保你的 OpenShift 虚拟机可以解析外部域名。编辑 `/etc/dnsmasq.conf` 文件,增加下面的 Google DNS:
|
||||||
|
|
||||||
|
|
|
@ -5,4 +5,4 @@ mdspell --version
|
||||||
echo -ne "mdl "
|
echo -ne "mdl "
|
||||||
mdl --version
|
mdl --version
|
||||||
htmlproofer --version
|
htmlproofer --version
|
||||||
htmlproofer --url-ignore "/github.com/,/localhost/,/servicemesher.com/,/172.17.8.101/,/172.20.0.113/,/slideshare.net/,/grpc.io/,/kiali.io/,/condiut.io/,/twitter.com/,/facebook.com/,/medium.com/,/google.com/,/jimmysong.io/,/openfaas.com/,/linkerd.io/,/layer5.io/,/thenewstack.io/,/blog.envoyproxy.io/,/blog.openebs.io/,/k8smeetup.github.io/,/blog.heptio.com/,/apigee.com/,/speakerdeck.com/,/download.svcat.sh/,/blog.fabric8.io/,/blog.heptio.com/,/blog.containership.io/,/blog.mobyproject.org/,/blog.spinnaker.io/,/coscale.com/,/zh.wikipedia.org/,/labs.play-with-k8s.com/,/cilium.readthedocs.io/,/azure.microsoft.com/,/storageos.com/,/openid.net/,/prometheus.io/,/coreos.com/,/openwhisk.incubator.apache.org/,/dockone.io/,/jianshu.com/,/cloudstax.io/,/spring.io/" _book
|
htmlproofer --url-ignore "/zsythink.net/,/helm.sh/,/github.com/,/tanzu.vmware.com/,/blog.cloudflare.com/,/localhost/,/servicemesher.com/,/172.17.8.101/,/172.20.0.113/,/slideshare.net/,/grpc.io/,/kiali.io/,/condiut.io/,/twitter.com/,/facebook.com/,/medium.com/,/google.com/,/jimmysong.io/,/openfaas.com/,/linkerd.io/,/layer5.io/,/thenewstack.io/,/blog.envoyproxy.io/,/blog.openebs.io/,/k8smeetup.github.io/,/blog.heptio.com/,/apigee.com/,/speakerdeck.com/,/download.svcat.sh/,/blog.fabric8.io/,/blog.heptio.com/,/blog.containership.io/,/blog.mobyproject.org/,/blog.spinnaker.io/,/coscale.com/,/zh.wikipedia.org/,/labs.play-with-k8s.com/,/cilium.readthedocs.io/,/azure.microsoft.com/,/storageos.com/,/openid.net/,/prometheus.io/,/coreos.com/,/openwhisk.incubator.apache.org/,/dockone.io/,/jianshu.com/,/cloudstax.io/,/spring.io/" _book
|
||||||
|
|
|
@ -51,7 +51,7 @@ Istio 社区和 [Tetrate](https://www.tetrate.io/) 在 Istio 对虚拟机的支
|
||||||
|
|
||||||
## 未来方向
|
## 未来方向
|
||||||
|
|
||||||
从 [bookinfo](https://istio.io/latest/docs/examples/virtual-machines/bookinfo/) 的演示中可以看出,在这个过程中涉及到的人工工作太多,很容易出错。在未来,Istio 会改进虚拟机测试的可操作性,根据平台身份自动引导,改进 DNS 支持和 istioctl 调试等。大家可以关注 [Istio 环境工作组](https://github.com/istio/community/blob/master/WORKING-GROUPS.md),了解更多关于虚拟机支持的细节。
|
从 Bookinfo 的演示中可以看出,在这个过程中涉及到的人工工作太多,很容易出错。在未来,Istio 会改进虚拟机测试的可操作性,根据平台身份自动引导,改进 DNS 支持和 istioctl 调试等。大家可以关注 [Istio 环境工作组](https://github.com/istio/community/blob/master/WORKING-GROUPS.md),了解更多关于虚拟机支持的细节。
|
||||||
|
|
||||||
## 参考阅读
|
## 参考阅读
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue