zoukankan      html  css  js  c++  java
  • Day0-1. Docker环境准备

    1.1 软件环境

    1.2 升级内核

    CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如:

    • 高版本的 docker(1.13 以后) 启用了 3.10 kernel 实验支持的 kernel memory account 功能(无法关闭),当节点压力大如频繁启动和停止容器时会导致 cgroup memory leak;
    • 网络设备引用计数泄漏,会导致类似于报错:"kernel:unregister_netdevice: waiting for eth0 to become free. Usage count = 1";

    解决方案如下:

    • 升级内核到 4.4.X 以上;
    • 或者,手动编译内核,disable CONFIG_MEMCG_KMEM 特性;
    • 或者,安装修复了该问题的 Docker 18.09.1 及以上的版本。但由于 kubelet 也会设置 kmem(它 vendor 了 runc),所以需要重新编译 kubelet 并指定 GOFLAGS="-tags=nokmem";
    shell> git clone --branch v1.14.1 --single-branch --depth 1 https://github.com/kubernetes/kubernetes
    shell> cd kubernetes
    shell> KUBE_GIT_VERSION=v1.14.1 ./build/run.sh make kubelet GOFLAGS="-tags=nokmem"
    

    这里采用升级内核的解决方法:

    shell> rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    shell> yum --enablerepo=elrepo-kernel install -y kernel-lt
    # 设置开机从新内核启动
    shell> grub2-set-default 0
    shell> reboot
    
  • 相关阅读:
    Java入门
    Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8
    pypy3.8安装
    asyncio执行阻塞代码
    linux安装go
    python消费rabbitmq
    绑定进程到指定cpu运行
    负载均衡算法
    django版本规划
    FastAPI WebSocket 简单演示
  • 原文地址:https://www.cnblogs.com/91donkey/p/13366373.html
Copyright © 2011-2022 走看看