Kubernetes服务治理白皮书.docx

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE2

PAGE2

Kubernetes服务治理白皮书

目录

服务治理

5.1

一般准则

5.1.1

滚动升级

5.1.2

Helm

5.1.3

Operator

5.1.4

ServiceMesh

5.1.5

Linkerd

5.1.6

Linkerd2

5.1.7

Istio

5.2

安装

5.2.1

流量管理

5.2.2

安全管理

5.2.3

策略管理

5.2.4

度量管理

5.2.5

排错

5.2.6

社区

5.2.7

Devops

5.3

Draft

5.3.1

JenkinsX

5.3.2

Spinnaker

5.3.3

Kompose

5.3.4

Skaffold

5.3.5

Argo

5.3.6

FluxGitOps

5.3.7

社区贡献

社区贡献

PAGE3

PAGE3

服务治理

服务治理

PAGE751

PAGE751

Kubernetes服务治理

本章介绍Kubernetes服务治理,包括容器应用管理、ServiceMesh以及Operator等。目前最常用的是手动管理Manifests,比如kubernetesgithub代码库就提供了很多的

manifest示例

/kubernetes/kubernetes/tree/master/cluster/addons/kubernetes/examples/kubernetes/contrib/kubernetes/ingress-nginx

手动管理的一个问题就是繁琐,特别是应用复杂并且Manifest比较多的时候,还需要考虑他们之间部署关系。Kubernetes开源社区正在推动更易用的管理方法,如

一般准则滚动升级HelmOperator

ServiceMeshLinkerdConduit

Istio

安装

流量管理安全管理策略管理Metrics排错

社区

Devops

DraftJenkinsXSpinnakerKomposeSkaffoldArgo

FluxGitOps

一般准则

一般准则

PAGE754

PAGE754

一般准则

分离构建和运行环境

使用dumb-int等避免僵尸进程

不推荐直接使用Pod,而是推荐使用Deployment/DaemonSet等

不推荐在容器中使用后台进程,而是推荐将进程前台运行,并使用探针保证服务确实在运行中

推荐容器中应用日志打到stdout和stderr,方便日志插件的处理

由于容器采用了COW,大量数据写入有可能会有性能问题,推荐将数据写入到

Volume中

不推荐生产环境镜像使用latest标签,但开发环境推荐使用并设置imagePullPolicy为Always

推荐使用Readiness探针检测服务是否真正运行起来了

使用activeDeadlineSeconds避免快速失败的Job无限重启引入Sidecar处理代理、请求速率控制和连接控制等问题

分离构建和运行环境

注意分离构建和运行环境,直接通过Dockerfile构建的镜像不仅体积大,包含了很多运行时不必要的包,并且还容易引入安全隐患,如包含了应用的源代码。

可以使用Docker多阶段构建来简化这个步骤。

FROM

FROMgolang:1.7.3asbuilder

WORKDIR/go/src//alexellis/href-counter/RUNgoget-d-v/x/net/html

COPYapp.go .

RUNCGO_ENABLED=0GOOS=linuxgobuild-a-installsuffixcgo-oapp.

FROMalpine:latest

RUNapk--no-cacheaddca-certificatesWORKDIR/root/

COPY--from=builder/go/src//alexellis/href-counter/app.CMD[./app]

僵尸进程和孤儿进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。

#首先

文档评论(0)

186****3950 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档