生产环境使用kubernetes的经验

1、生产环境使用kubernetes的经验

原文:http://blog.kubernetes.io/2016/02/sharethis-kubernetes-in-production.html彩云的翻译:https://www.caicloud.io/article_detail/579215792357560000000001


2、Kubernetes中分布式配置文件ConfigMap

文件,目录等多种方式将配置文件用于环境变量、键值、配置文件,卷等多种地方。http://www.dockerinfo.net/1099.html
kubernetes -configmapconfigmap,配置文件管理,作为卷挂载https://github.com/kubernetes/kubernetes/issues/23748
https://github.com/kubernetes/kubernetes/issues/23748#issuecomment-230390309


3、subpath,挂载在卷下面的子路径,以多层卷的形式

apiVersion: v1
kind: ConfigMap
metadata:
  name: test-pd-plus-cfgmap
data:
  file-from-cfgmap: file data
apiVersion: v1
kind: Pod
metadata:
  name: test-pd-plus-cfgmap
spec:
  containers:
  - image: ubuntu
    name: bash
    stdin: true
    stdinOnce: true
    tty: true
    volumeMounts:
    - mountPath: /mnt
      name: pd
    - mountPath: /mnt/file-from-cfgmap
      name: cfgmap
      subPath: file-from-cfgmap
  volumes:
  - name: pd
    gcePersistentDisk:
      pdName: testdisk
  - name: cfgmap
    configMap:
      name: test-pd-plus-cfgmap

4. Kubernetes 不断重启容器问题(docker方面的,单个应用oom等情况)

1.docker become slow will cause kubernetes restart the docker ?
    pulling images in the docker sometimes so slow will hang the docker .
    ----Let's reopen this. I think docker may become very slow sometimes in the test, causing this issue to happen. However, the node 
        can recover from this eventually. We should evaluate whether we need to increase the timeout for
        health check or perform multiple health check in a row.

https://github.com/kubernetes/kubernetes/issues/28154

5.使用upstart封装任务,将应用封装成系统服务启动、停止

upstart的介绍以及使用方法 :http://blog.fens.me/linux-upstart/

https://github.com/jainvipin/kubernetes-ubuntu-start

6.通过ResourceQuota插件管理资源配额

资源的配额管理功能主要用于对集群中可用的资源进行分配和限制。为了开启配额管理,需要设置 kube-apiserver 的 --admission_control 参数,使之家在这两个准入控制器。

kube-apiserver ... --admission_control=LimitRanger,ResourceQuota...

http://blog.dingmingk.com/blog/k8s_quota.html

7.kubelet 启动参数list

--kube-reserved value    资源配额管理
    ...

http://kubernetes.io/docs/admin/kubelet/

8.kube-dns

通过kube-dns解析服务,完成kube对内部网络以及外部网络互连

http://www.ctoutiao.com/98480.html

8.5 kubernetes网络访问

http://dockone.io/article/1815

9.Secret 的使用

创建secrets对象的方式有两种,一种是用户手动创建,另一种是集群自动创建。 一个已经创建好的secrets对象有两种方式被pod对象使用,其一,在container中的volume对象里以file的形式被使用,其二,在pull images时被kubelet使用。 为了使用secret对象,pod必须‘引用’这个secret,同样可以手动或者自动来执行‘引用’操作。

https://segmentfault.com/a/1190000002939807

https://github.com/kubernetes/kubernetes/blob/8b328429eb2f6997dfb9d82204c6de45c8835501/docs/images.md#specifying-imagepullsecrets-on-a-pod

kubernetes.io/dockercfg

此类型的secret通常用来作为私有registry的验证,在kubernetes创建containers时对image进行pull操作之前对registry的验证,通常情况下对于有验证的registry我们都会使用docker login REGISTRY来进行登录认证,认证通过后,会在当前用户家目录下生成一个.dockercfg的文件,里面会记录关于每个registory的验证信息。

http://blog.coocla.org/kubernetes-secret-resource.html


你可能感兴趣的:(k8s)