容器开发运维人员的 Linux 操作机配置优化建议
2022/12/3 4:23:56
本文主要是介绍容器开发运维人员的 Linux 操作机配置优化建议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
“工欲善其事必先利其器”, 作为一个PAAS平台架构师, 容器相关技术(docker, k8s等)是必不可少的. 本文简单介绍下我自己的Linux操作机配置. 提升工作效率, 提高使用体验. ❤️❤️❤️
❗️ 注意:
本文以CentOS 7.6 为例, RHEL7.6 操作类似.
Ubuntu系统操作可以触类旁通. 没啥难度.
另外下文中会有一些"可选"项, 主要是针对一些特殊情况, 如: 需要通过代理连接互联网…
更换OS 软件安装源
目的: 加快软件下载速度.
可以换成: 阿里, 腾讯, 清华, 中科大…的源.
以清华Mirror为例, 操作步骤如下:
🔖 参考文章:
清华大学开源软件镜像站 - CentOS 镜像使用帮助https://mirrors.tuna.tsinghua.edu.cn/help/centos/
操作步骤
-
先备份 CentOS-Base.repo
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
-
用下面内容覆盖
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
-
更新软件包缓存
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
步骤
-
sudo yum install -y git
-
配置全局用户:
git config --global user.name "<username>"
-
配置全局email:
git config --global user.email "<username@example.com>"
-
(可选): 配置ssh认证
- 🔖 参考文档: GitHub - 使用 SSH 连接到 GitHub https://docs.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh
-
(可选): 配置代理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
-
(可选): 配置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 INSTALL.md: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
zsh-syntax-highlighting
- clone:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- 在
~/.zshrc
激活插件:plugins=( [plugins...] zsh-syntax-highlighting)
- 重启zsh
zsh-autosuggestions
- clone:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- 在
~/.zshrc
激活插件:plugins=( [plugins...] zsh-autosuggestions)
- 重启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/
-
卸载老版本:
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
配置REPOSITORY
$ sudo yum install -y yum-utils $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
安装:
$ sudo yum install docker-ce docker-ce-cli containerd.io
-
启动:
$ sudo systemctl start docker
-
验证:
$ 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/
- 下载:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
- 标记
kubectl
文件为可执行:chmod +x ./kubectl
- 将文件放到 PATH 路径下:
sudo mv ./kubectl /usr/local/bin/kubectl
- 测试你所安装的版本是最新的:
kubectl version --client
安装 minikube 或 kind
这里以 minikube 为例:
官方安装文档: https://kubernetes.io/zh/docs/tasks/tools/install-minikube/
⚠️ 需要强调的是:
- 看中文文档
- 📓 说明: 由于国内无法直接连接 k8s.gcr.io,推荐使用阿里云镜像仓库,在
minikube start
中添加--image-repository
参数。 - 示例:
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
环境也是必不可少的.
最后祝大家用的顺手! 💪💪💪
本文由东风微鸣技术博客 EWhisper.cn 编写!
这篇关于容器开发运维人员的 Linux 操作机配置优化建议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南