写点什么

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

用户头像
东风微鸣
关注
发布于: 2020 年 10 月 22 日

"工欲善其事必先利其器", 作为一个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



  1. 用下面内容覆盖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



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



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



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



1. 参考文档: GitHub - 使用 SSH 连接到 GitHub <https://docs.github.com/cn/github/authenticating-to-github/connecting-to-github-with-ssh>



  1. (可选): 配置代理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



  1. (可选): 配置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`



  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



  1. 配置REPOSITORY



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



  1. 安装:



$ sudo yum install docker-ce docker-ce-cli containerd.io



  1. 启动:



$ sudo systemctl start docker



  1. 验证:



$ 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 环境也是必不可少的.



最后祝大家用的顺手!



发布于: 2020 年 10 月 22 日阅读数: 49
用户头像

东风微鸣

关注

资源共享, 天下为公! 2018.11.08 加入

APM行业认证专家, 容器技术认证专家. 现任中国大地保险PAAS平台架构师. 公众号:东风微鸣技术博客

评论

发布
暂无评论
容器开发运维人员的Linux操作机配置优化建议