3.2.4 K8S最佳实践

目录

3.2.4.1 K8S可视化自动化工具及日志收集

1、Endpoints

2、部署Harbor-Registry

3.2.4.2 结合K8S的系统监控及业务部署

1、kubectl

 2、yaml资源描述文件

3、Kompose转换

3.2.4.3 网易在K8S的探索和实践(网易云)

1、准备持久化环境

    1.1、什么是NFS

    1.2、NFS原理

    1.3、NFS服务主要进程

    1.4、NFS的关键工具

2、实现数据持久化

    2.1、PV与PVC

3、ConfigMap

    3.1、创建ConfigMap的4种方式

    3.2、ConfigMap的限制


3.2.4.1 K8S可视化自动化工具及日志收集

1、Endpoints

有几种情况下需要用到没有selector的service。
    1、使用kubernetes集群外部的数据库时
    2、service中用到了其他namespace或kubernetes集群中的service
    3、在kubernetes的工作负载与集群外的后端之间互相迁移

2、部署Harbor-Registry

    老师文档中“4.6.    部署 Harbor-Registry”只适合二进制方式安装的k8s集群
    1、下载最新的docker-compose二进制文件:https://github.com/docker/compose/releases
    2、下载最新的harbor离线安装包:https://github.com/goharbor/harbor/releases

3.2.4.2 结合K8S的系统监控及业务部署

参考老师原文档:E:\meWork\study\project\subject-3\subject-3-k8s\专题三-Kubernetes_学习文档-N.docx

的“5.4.    kubectl”、“5.5.    YAML资源描述文件

1、kubectl

官网最详细的命令使用文档(强烈推荐大家学习):https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

中文文档:http://docs.kubernetes.org.cn/683.html

 2、yaml资源描述文件

    yaml是一种用来写配置文件的语言。
    yaml有两种结构类型lists、maps
    1、---:表示文件之间的分隔符。---前面的行表示一个文件,---后面的行又表示一个文件
    2、-:表示list中的一个元素,多行-就组成了list
    3、除了-开头的,其他的都是map
    service、deployment、pod。
    deployment:在service与pod之间,定义pod的副本数量【负载均衡个数】

3、Kompose转换

    Kompose可以方便地将Docker Compose模板转换成为Kubernetes的yaml文件,并在Kubernetes集群上部署和管理应用。
    kompose工具的git地址:https://github.com/kubernetes/kompose
    git上有写linux获取镜像的方式,如下图:

3.2.4.3 网易在K8S的探索和实践(网易云)

参考老师原文档:E:\meWork\study\project\subject-3\subject-3-k8s\专题三-Kubernetes_学习文档-N.docx

的“5.6.    K8S 数据持久化

1、准备持久化环境

    1.1、什么是NFS

        NFS:Network File System,网络文件系统
             通过NFS,可以像访问本地文件一样访问远端系统上的文件。

    1.2、NFS原理

主要是通过rpcbind服务,将配置信息推送到相连的其他客户端(或服务端)

    1.3、NFS服务主要进程

        rpc.nfsd:最主要的NFS进程,管理客户端是否可登录
        rpc.mountd:挂载和卸载NFS文件系统,包括权限管理
        rpc.lockd:非必要,管理文件锁,避免同时写出错
        rpc.statd:非必要,检查文件一致性,可修复文件

    1.4、NFS的关键工具

        主要配置文件:/etc/exports
        NFS文件系统维护命令:/usr/bin/exportfs
        共享资源的日志文件:/var/lib/nfs/*tab
        客户端查询共享资源命令:/usr/sbin/showmount
        端口配置:/etc/sysconfig/nfs

2、实现数据持久化

    2.1、PV与PVC

        PV:Persistent Volume(持久卷)【声明】
        PVC:Persistent Volume Claim(持久卷消费者)【使用者】
     我们采用NFS实现。
     PV是NFS的一个代理,实际上是PV向NFS拿空间。PVC向PV拿空间

3、ConfigMap

    kubernetes通过ConfigMap来实现对容器中应用的配置管理。

    3.1、创建ConfigMap的4种方式

        --from-literal直接在命令行中指定configmap参数创建
            eg:kubectl create configmap test-config1 --from-literal=db.host=172.18.8.200 --from-literal=db.port='3306'
                查看配置内容:kubectl get cm test-config1 -o yaml
        --from-file=<文件>:指定文件创建,即将一个配置文件创建为一个ConfigMap

echo -n 172.18.8.200 > ./db.host
echo -n 3306 > ./db.port
kubectl create cm test-config2 --from-file=./db.host --from-file=./db.port

        --from-env-file=<文件>:通过一个文件内多个键值对
        yaml配置文件:事先写好标准的configmap的yaml文件,然后kubectl create -f 创建

使用该ConfigMap挂载的Env不会同步更新;
使用该ConfigMap挂载的Volume中的数据需要一段时间(实测大概10秒)才能同步更新。
大多数情况下,配置信息都以文件形式提供,所以在创建ConfigMap时通常采用--from-file或YAML方式,读取ConfigMap时通常采用Volume方式。

    3.2、ConfigMap的限制

1、ConfigMap必须在pod消费它之前创建,除非被标记为可选。
2、ConfigMaps用于填充环境变量通过envFrom,它们被认为具有无效的环境变量名称的键将跳过这些键。该pod被允许启动。将会有一个事件,原因是InvalidVariabelNames,该消息包含被跳过的无效的键的列表。
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值