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

news2024/11/15 22:48:05

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

:exclamation: 注意:

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

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

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

更换OS 软件安装源

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

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

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

:bookmark: 参考文章:

清华大学开源软件镜像站 - 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
```
  1. 更新软件包缓存

     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. :bookmark: 参考文档: 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

:bookmark: 参考文章:

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 -)"

:warning: 注意:

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

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

:bookmark: 参考文档:

  • zsh-syntax-highlighting INSTALL.md: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md

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
)

:notebook: 备注:

  • 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全家桶, 省心省力

:bookmark: 参考文档:

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

:notebook: 备注:

  • 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/

:warning: 需要强调的是:

  1. 看中文文档
  2. :notebook: 说明: 由于国内无法直接连接 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 环境也是必不可少的.

最后祝大家用的顺手! :muscle::muscle::muscle:

本文由东风微鸣技术博客 EWhisper.cn 编写!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么简历上不要轻易写“精通分布式”,一线大厂为什么面试必问分布式?

为什么要学习分布式&#xff1f; 作为一名后端 Java 程序员&#xff0c;我们在找工作写简历的时候除了高并发经验。一般情况下都还会写上自己熟悉/了解/掌握/精通分布式系统&#xff0c;所以高并发和分布式大多是成对出现的。 在某直聘网站上搜到的 Java 岗位 这么多金的一个知…

Shiro-SpringBoot (二)

在上一节中实现了在SpringBoot中使用Shiro做权限控制&#xff0c;但是针对上一节留下的不足点&#xff0c;在这里进行一下优化和改造&#xff0c;主要有一下几点: 支持AJAX请求支持FreeMarker模板URL拦截提取到yml配置文件 (一) 支持AJAX请求 如果是AJAX请求URL接口&#xff0…

软件外包公司真的去不得吗?

各位小伙伴们&#xff01;好&#xff01;啊&#xff01;最近全国大部分地区都降温了&#xff0c;大家记得做好保暖&#xff0c;不要生病。 无论是应届毕业生&#xff0c;还是准备跳槽的测试人&#xff0c;都有面对“软件外包”公司的可能。有些人说进入外包公司就相当于给履历…

电子招标采购商城系统:优化传统采购业务,提速企业数字化升级

后疫情时代&#xff0c;电子元器件供应链发生了巨大的变化&#xff0c;缺货已经影响了大多数企业&#xff0c;电子元器件采购人员每天被“缺货”“涨价”的字眼包围着&#xff0c;对电子元器件企业的发展带来了极大的限制。当前&#xff0c;借助数字化技术对电子元器件采购管理…

[附源码]计算机毕业设计在线票务系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

云服务器和本地服务器的优缺点分析

服务器是企业IT基础设施的命脉&#xff0c;可用于存放文件、应用程序、网站、员工远程访问等等。当然&#xff0c;选择时有许多不同类型的服务器和许多需要考虑的因素。目前比较流行的两种服务器类型是本地服务器和基于云的服务器。 本地服务器 本地服务器放置在公司的办公室中…

VS2022开发Arduino(90%转载10%原创)

先上转载链接 VS2022开发Arduino&#xff08;提供Visual.Micro.Processing.Sketch.dll&#xff09;_hb2cpc的博客-CSDN博客_vs开发arduino Visual Studio 2022开发Arduino详述_liht_1634的博客-CSDN博客_visualstudio arduino 其中破解部分编译出错&#xff0c;此处为原创&am…

RabbitMQ面试篇

文章目录1 你们为什么选择了RabbitMQ而不是其它的MQ&#xff1f;2 RabbitMQ如何确保消息的不丢失&#xff1f;3 RabbitMQ如何避免消息堆积&#xff1f;4 RabbitMQ如何保证消息的有序性&#xff1f;5 如何防止MQ消息被重复消费&#xff1f;6 如何保证RabbitMQ的高可用&#xff1…

计算机体系结构:分支目标缓冲(BTB)例题

题目内容 按照下表计算分支转移总的延迟&#xff0c;根据下面的假设&#xff0c;计算分支目标缓冲的性能。 (1)对于BTB中的指令&#xff0c;预测准确率90%。 (2)缓冲区命令率90%。 (3)不在BTB中分支转移成功的比例为60%。 题目分析 总共有四种情况&#xff1a; ①在BTB中且预…

DSP篇--C6678功能调试系列之网络调试

目录 网络调试 1、GE工程的研究与功能扩充 网络调试 网口测试&#xff0c;使用的是TI官方提供的GE网络测试例程。 主要注意的事项是&#xff1a;时钟的设置、相关设备的MAC地址和IP的设置、中断的设置。确定板子的port和phy。 GbE Switch Subsystem Initialization Procedure…

[附源码]Python计算机毕业设计Django计算机相关专业考研资料管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

bash调试方法总结

在看nginx源码实现时发现有些代码是根据不同的本地环境动态生成的&#xff0c;看了一下大致生成流程&#xff0c;基本上都是通过shell脚本调用shell脚本实现的。看到了shell脚本&#xff0c;就想到如何调试shell脚本&#xff0c;shell脚本在实际工作中运用的挺多的&#xff0c;…

几何向量:向量到平面投影和LookAt

在研究所保密开发完后回来隔离两波&#xff0c;已经接近四五个月没碰外网电脑了&#xff0c;可以说是活成了原始人。 因为某些开发细节原因&#xff0c;需要实现向量投影和LookAt功能&#xff0c;记录一下。 首先实现向量到平面投影&#xff0c;如下&#xff1a; …

第二证券|鲍威尔发声:释放重磅信号,美股大涨!中概股狂涨

大家早上好&#xff01;昨夜今晨又有许多大事产生&#xff1a;美联储主席鲍威尔证明&#xff0c;12月开端或许放缓加息&#xff1b;微软涨逾1100亿美元&#xff0c;美股进入技能型牛市&#xff1b;小鹏轿车昨日暴升近50%&#xff0c;中概股11月涨逾40%&#xff1b;法、德不满美…

java计算机毕业设计ssm企业日常事务管理系统sl5xl(附源码、数据库)

java计算机毕业设计ssm企业日常事务管理系统sl5xl&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

全栈性能测试教程之性能测试相关知识(二) Jmeter的应用

性能测试相关知识&#xff08;二&#xff09; Jmeter的应 1、性能测试的方法 1.1验收负载测试&#xff1a; 在QA的环境模拟生产运行的业务压力和使用场景组合&#xff0c;测试系统的性能是否满足生产环境的性能诉求。 1.2负载测试 在被测系统上持续不断的增加压力&#xff…

易点易动RFID固定资产管理系统助力企业年终固定资产大盘点

固定资产作为资产构成的重要组成部分&#xff0c;也是企业完成生产经营的物质保障&#xff0c;对企业的发展起着重要的作用。越来越多的企业者开始重视企业内部的固定资产管理&#xff0c;从而会定期对固定资产进行盘点&#xff0c;以保证固定资产账实一致、账账相符。每逢年底…

粒子群算法和鲸鱼算法的比较(Matlab代码实现)

目录 1 粒子群优化算法 2 鲸鱼优化算法 3 粒子群算法和鲸鱼算法比较 4 Matlab代码实现 1 粒子群优化算法 粒子群优化算法(PSO&#xff1a;Particle swarm optimization) 是一种进化计算技术&#xff08;evolutionary computation&#xff09;。源于对鸟群捕食的行为研究…

GitHub限时开源36小时的阿里Java架构师学习手册,上线即标星35k+

前言 今年受大环境影响面试于往年相比难得多&#xff0c;对程序员要求越来越高&#xff01;环境我们无法改变能改变的就是自己&#xff0c;努力提升技术&#xff01; 我在GitHub无意见看见115k的Java教程&#xff0c;感觉还不错&#xff0c;给大家看看&#xff01;文档总共分为…

Cloud Mail JavaScript管理邮件

Cloud Mail JavaScript管理邮件 使用流行的云服务发送、接收和管理邮件。 云邮件使用流行的云服务简化了邮件的发送、接收和管理&#xff0c;包括Amazon SES、Microsoft 365(Outlook Mail)和Gmail。还支持包括OAuth、TLS 1.3和TLS 1.2在内的现代身份验证和安全选项。 云邮件功…