容器开发运维人员的 Linux 操作机配置优化建议

容器,开发,人员,linux,操作机,配置,优化,建议 · 浏览次数 : 121

小编点评

# K8s 安装指南 ## 1. 下载 K8s installer - 官方文档: https://kubernetes.io/docs/tasks/tools/install-minikube/ - 下载地址: https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3$ chmod 700 get_helm.sh ## 2. 安装 K8s - 使用 minikube 命令 - 或使用 k8s 官方安装工具 - 下载地址: https://mirror.openshift.com/pub/openshift-v4/clients/oc/安装OpenShift for Developer ## 3. 添加镜像仓库 - 使用 --image-repository参数 - 或使用阿里云镜像仓库 - 示例: `minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers` ## 4. 验证 K8s安装 - 使用 minikube 命令 - 或使用 k8s 官方安装工具 - 示例: `minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers` ## 5. 安装 OpenShift - 使用 minikube 命令 - 或使用 k8s 官方安装工具 - 示例: `minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers` - 下载地址: https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/安装 ## 6. 验证 OpenShift 安装 - 使用 minikube 命令 - 或使用 k8s 官方安装工具 - 示例: `minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers` - 使用 OpenShift 官方安装文档

正文

"工欲善其事必先利其器", 作为一个PAAS平台架构师, 容器相关技术(docker, k8s等)是必不可少的. 本文简单介绍下我自己的Linux操作机配置. 提升工作效率, 提高使用体验. ❤️❤️❤️

❗ 注意:

本文以CentOS 7.6 为例, RHEL7.6 操作类似.

Ubuntu系统操作可以触类旁通. 没啥难度.

另外下文中会有一些"可选"项, 主要是针对一些特殊情况, 如: 需要通过代理连接互联网...

更换OS 软件安装源

目的: 加快软件下载速度.

可以换成: 阿里, 腾讯, 清华, 中科大...的源.

以清华Mirror为例, 操作步骤如下:

🔖 参考文章:

清华大学开源软件镜像站 - CentOS 镜像使用帮助https://mirrors.tuna.tsinghua.edu.cn/help/centos/

操作步骤

  1. 先备份 CentOS-Base.repo

    sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    
  2. 用下面内容覆盖CentOS-Base.repo

    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the
    # remarked out baseurl= line instead.
    #
    #
    
    
    [base]
    name=CentOS-$releasever - Base
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
    
    
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
    
    
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
    
  3. 更新软件包缓存

    sudo yum makecache
    

配置代理(可选)

sudo vi /etc/profile.d/setproxy.sh

#!/bin/sh

# for terminal
export proxyserveraddr=127.0.0.1
export proxyserverport=8080
export HTTP_PROXY="http://$proxyserveraddr:$proxyserverport/"
export HTTPS_PROXY="http://$proxyserveraddr:$proxyserverport/"
# export FTP_PROXY="ftp://$proxyserveraddr:$proxyserverport/"
# export SOCKS_PROXY="socks://$proxyserveraddr:$proxyserverport/"
export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
export http_proxy="http://$proxyserveraddr:$proxyserverport/"
export https_proxy="http://$proxyserveraddr:$proxyserverport/"
# export ftp_proxy="ftp://$proxyserveraddr:$proxyserverport/"
# export socks_proxy="socks://$proxyserveraddr:$proxyserverport/"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

sudo source /etc/profile.d/setproxy.sh

YUM配置代理

echo "proxy=http://127.0.0.1:8080" >> /etc/yum.conf

安装及配置Git

目的: 使用Git, 毕竟很多资料、代码库和软件都需要通过git clone

步骤

  1. sudo yum install -y git

  2. 配置全局用户: git config --global user.name "<username>"

  3. 配置全局email: git config --global user.email "<username@example.com>"

  4. (可选): 配置ssh认证

    1. 🔖 参考文档: GitHub - 使用 SSH 连接到 GitHub https://docs.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh
  5. (可选): 配置代理Proxy

    # 查看当前代理设置
    git config --global http.proxy
    
    # 设置当前代理为 http://127.0.0.1::8080 或 socket5://127.0.0.1::8080
    git config --global http.proxy 'http://127.0.0.1::8080'
    git config --global https.proxy 'http://127.0.0.1::8080'
    git config --global http.proxy 'socks5://127.0.0.1::8080'
    git config --global https.proxy 'socks5://127.0.0.1::8080' 
    
    # 删除 proxy 
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
  6. (可选): 配置Proxy Bypass, 如对应仓库的origin需要Bypass: git config --add remote.origin.proxy ""

优化配置Shell

目的: zsh + plugins, 提供丰富而友好的shell体验. 如: 语法高亮, 自动补全, 自动建议, 容器相关插件...

安装zsh

sudo yum install -y zsh
zsh --version
sudo chsh -s $(which zsh)
# 注销

安装 powerline

可以通过pip安装:

pip install powerline-status

🔖 参考文章:

powerline - Installation: https://powerline.readthedocs.io/en/latest/installation.html#pip-installation

安装 oh-my-zsh

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

⚠️ 注意:

如果连不上: <raw.githubusercontent.com>, 就从github对应的地址: https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh把脚本复制下来运行.

安装zsh插件: zsh-autosuggestions 和 zsh-syntax-highlighting

🔖 参考文档:

zsh-syntax-highlighting

  1. clone: git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  2. ~/.zshrc激活插件: plugins=( [plugins...] zsh-syntax-highlighting)
  3. 重启zsh

zsh-autosuggestions

  1. clone: git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  2. ~/.zshrc激活插件: plugins=( [plugins...] zsh-autosuggestions)
  3. 重启zsh

使用 oh-my-zsh

编辑zshrc文件: vi ~/.zshrc

# 修改主题
ZSH_THEME="agnoster"

# 启用插件
plugins=(
  git
  ansible
  docker-compose
  docker
  helm
  kubectl
  minikube
  oc
  pip
  python
  ubuntu
  zsh-autosuggestions
  zsh-syntax-highlighting
)

📓 备注:

  • helm: k8s上的镜像包管理工具
  • minikube: 最小化K8S安装工具
  • oc: K8S的RedHat商业发行版(OpenShift)的命令行工具

最终效果

按需安装常用软件

目的: 根据自己需要, 按需安装常用软件和工具

sudo yum -y install dnsmasq httpd haproxy nginx \
                    python3 \
                    genisoimage libguestfs-tools

按需配置服务和开机自启动:

systemctl enable haproxy.service 
systemctl start haproxy.service 
...

安装jq, jq安装链接https://stedolan.github.io/jq/download/. JQ是个json格式化命令行工具, 在日常管理K8S中很有用.

安装容器类组件

docker全家桶

建议直接安装docker全家桶, 省心省力

🔖 参考文档:

Install Docker Engine on CentOS: https://docs.docker.com/engine/install/centos/

  1. 卸载老版本:

    $ sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 配置REPOSITORY

    $ sudo yum install -y yum-utils
    
    $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
  3. 安装:

    $ sudo yum install docker-ce docker-ce-cli containerd.io
    
  4. 启动:

    $ sudo systemctl start docker
    
  5. 验证:

    $ sudo docker run hello-world
    

其他开源组件

对于RedHat系, 可能要安装多个组件替代:

sudo yum -y install buildah podman skopeo

📓 备注:

  • buildah: 构建容器镜像的组件
  • podman: 运行容器镜像的组件
  • skopeo: 传输移动容器镜像的组件

安装 kubectl

官方安装文档: https://kubernetes.io/zh/docs/tasks/tools/install-kubectl/

  1. 下载: curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
  2. 标记 kubectl 文件为可执行:chmod +x ./kubectl
  3. 将文件放到 PATH 路径下:sudo mv ./kubectl /usr/local/bin/kubectl
  4. 测试你所安装的版本是最新的:kubectl version --client

安装 minikube 或 kind

这里以 minikube 为例:

官方安装文档: https://kubernetes.io/zh/docs/tasks/tools/install-minikube/

⚠️ 需要强调的是:

  1. 看中文文档
  2. 📓 说明: 由于国内无法直接连接 k8s.gcr.io,推荐使用阿里云镜像仓库,在 minikube start 中添加--image-repository 参数。
  3. 示例: minikube start --vm-driver=<驱动名称> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

安装 helm v3

二进制CLI下载地址https://github.com/helm/helm/releases/latest

安装源文档: https://helm.sh/docs/intro/install/

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

安装OpenShift 命令行 oc

直接下载二进制CLI安装: https://mirror.openshift.com/pub/openshift-v4/clients/oc/

安装OpenShift for Developer命令行odo

直接下载二进制CLI安装:https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/

安装 Tekton - K8S原生CI/CD工具

CLI工具叫做tkn, 官方文档: https://github.com/tektoncd/cli

安装:

# Get the tar.xz
curl -LO https://github.com/tektoncd/cli/releases/download/v0.12.0/tkn_0.12.0_Darwin_x86_64.tar.gz
# Extract tkn to your PATH (e.g. /usr/local/bin)
sudo tar xvzf tkn_0.12.0_Darwin_x86_64.tar.gz -C /usr/local/bin tkn

当然, golang 环境也是必不可少的.

最后祝大家用的顺手! 💪💪💪

本文由博客一文多发平台 OpenWrite 发布!

与容器开发运维人员的 Linux 操作机配置优化建议相似的内容:

容器开发运维人员的 Linux 操作机配置优化建议

"工欲善其事必先利其器", 作为一个PAAS平台架构师, 容器相关技术(docker, k8s等)是必不可少的. 本文简单介绍下我自己的Linux操作机配置. 提升工作效率, 提高使用体验. :heart::heart::heart: :exclamation: 注意: 本文以CentOS 7.6

[转帖]Redis检索性能不足,改造rsbeat解决历史慢日志跟踪

https://www.sohu.com/a/313061840_411876 作者介绍 刘宇,甜橙金融创新中心基础技术架构师,拥有9年IT从业经验、9年数据库开发运维经验、4次大型营销活动经验。目前关注容器、分布式数据库技术等基础技术。 在线上排查redis性能问题时,从redis中找进行优化是一

[转帖]运维面试高频知识点

https://www.cnblogs.com/apink/p/16304036.html Docker 什么是docker? docker是基于Golang语言进行开发的一个开源应用容器引擎,换言之就是运行在宿主机上的一个sandboxed process,但是它与宿主机的其它进程是相互隔离的,是

云原生容器高可用运维能力应用

摘要:华为云容器SRE在海量集群和容器运维实践中,从智能运维能力、确定性场景恢复等多方面总结出一套确定性运维实践,以应对云原生业务快速增长。 本文分享自华为云社区《云原生容器高可用运维能力应用》,作者:陈勇/刘志超/袁文峰。 云原生场景下,对架构高可用、应用高可用、基础云平台高可用提出了更高的要求,

4大焕新,华为云CCE带你感受容器化上云体验

在容器化日益成为中大型企业上云主流选择的情况下,容器服务如何能帮助用户更简单快捷的上云、高效可信赖的运维?

华为云云原生视窗:一文回顾Q1精彩瞬间

摘要:一文速览2023年Q1期间华为云云原生相关动态信息。 华为云云原生动态 华为云海外首发CCI Serverless容器服务 在MWC23 巴展期间,华为云海外首发CCI Serverless容器服务正式上线。其具备聚焦应用免运维、极致计算性能、智能统筹弹性等优势…… Serverless容器构

计算存储分离在京东云消息中间件JCQ上的应用

作者:田寄远 JCQ 全名 JD Cloud Message Queue,是京东云自研、具有 CloudNative 特性的分布式消息中间件。 JCQ 设计初衷即为适应云特性的消息中间件;具有高可用、数据可靠性、副本物理隔离、服务自治、健康状态汇报、少运维或无运维、容器部署、弹性伸缩、租户隔离、按量

MongoDB从入门到实战之MongoDB简介

前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通常能让我们以更低的成本解决问题(包括学习、开发、运维等成本)。接下来的一个月博主将会从基础出发,编写

数仓在线运维:如何进行在线增删CN?

摘要:集群运行过程中,根据集群的综合负载和业务接入情况进行分析:增加CN可以适当降低CPU消耗,增大接入连接数,分散CN节点业务压力,根据实际情况来识别是否要增加CN,如果是提升集群容量和扩展比能力,建议进行扩容操作。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】在线运维-在线增

使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机

作者:京东科技 林中 服务器更换、网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序、数据库,修改数据库连接文件等。在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运维管理效率。本文将介绍如何使用“宝塔一键迁移”工具将单机版typecho博客系统快速迁移到京东云cv