开发 Tips(4)

2023年 1月 4日 45.6k 0

主要记录最近遇到的一些开发问题,解决方法。

1. WhiteNoise 转发静态文件

Django 内置的静态文件服务器效率很低,而 WhiteNoise 是一个不错的替代品。具有如下特点:

  • 通常用于 PaaS 服务
  • 支持 wsgi 应用程序,针对 Django 进行了特殊适配
  • 配合 CDN 使用,更佳
  • 在 Gunicorn 配合下,使用 sendfile 系统调用,处理效率非常高
  • 相比于 Nginx,WhiteNoise 提供静态文件服务的方式更加简单,但效率只有 Nginx 的 15%

2. 记录 Django 模型修改历史

  • django-simple-history原理:每个需要追踪的模型都需要单独创建一张表,修改实例时,在表中直接新建一条记录。
  • django-reversion原理:当模型数据发生修改时,将修改序列化到 Version 表中。仅需要一张表,就可以记录全部修改记录。

3. CentOS 升级 Docker 版本

  • 卸载旧版本的Docker
  • 1
    2
    3
    4
    5
    6
    
    $yum remove docker \
                docker-common \
                container-selinux \
                docker-selinux \
                docker-engine \
                docker-engine-selinux
    

    保存在 /var/lib/docker/ 的镜像、容器、数据、网络都会被保留。

  • 安装依赖
  • 1
    
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  • 安装 Docker
  • 1
    2
    3
    
    yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
    
    1
    
    yum makecache fast
    
    1
    
    yum install docker-ce
    

    4. 远程控制工具 - TeamViewer

    由于,目前(2018.11)Mac OS X 的 QQ 不支持远程协助。推荐另外一个远程控制软件:TeamViewer 兼容于 Microsoft Windows、Mac OS X、Linux、iOS、Android 操作系统,也可以通过网页浏览器连线已安装 TeamViewer 的计算机。

    5. Linux 新增交换分区文件

    查看当前分区情况

    1
    
    free -m
    

    增加 swap 大小,2G 左右

    1
    
    dd if=/dev/zero of=/var/swap bs=1024 count=2048000
    

    设置交换文件

    1
    
    mkswap /var/swap
    

    立即激活启用交换分区

    1
    
    swapon /var/swap
    

    添加系统引导时自启动运行

    1
    
    vi /etc/fstab
    

    添加一行

    1
    
    /var/swap       swap      swap     defaults   0   0
    

    至此,CentOS 增加 Swap 分区大小,完成。收回 swap 空间

    1
    
    swapoff /var/swap
    

    从文件系统中回收

    1
    
    rm /var/swap
    

    6. CentOS 7 安装 minikube

    新增安装源:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    

    开始安装:

    1
    2
    3
    4
    
    yum -y install kubectl
    wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube 
    chmod +x minikube
    mv minikube  /usr/local/bin/
    

    Linux 下 minikube 支持两种虚拟机 VirtualBox 和 KVM。但如果,你使用的是云服务器,无法开启 CPU 的虚拟化功能,可以使用使用宿主机的 Docker 环境。

    1
    
    minikube start --vm-driver=none
    

    参考文章。

    7. CentOS 7 安装指定版本的 Docker

    新增 Aliyun 的 docker-ce 源

    1
    2
    
    yum install -y yum-utils
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    查看可选的 docker-ce 版本

    1
    2
    3
    4
    5
    6
    
    yum list docker-ce --showduplicates
    
    docker-ce.x86_64                                                                                                           17.03.3.ce-1.el7                                                                                                                   docker-ce-stable
    docker-ce.x86_64                                                                                                           18.06.3.ce-3.el7                                                                                                                   docker-ce-stable
    docker-ce.x86_64                                                                                                           3:18.09.9-3.el7                                                                                                                    docker-ce-stable
    docker-ce.x86_64                                                                                                           3:19.03.8-3.el7                                                                                                                    docker-ce-stable
    

    安装指定版本的 docker-ce

    1
    
    yum install  -y docker-ce-19.03.8-3.el7
    

    启动

    1
    2
    
    systemctl start docker
    systemctl enable docker
    

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论