Containerd 如何配置 Proxy?
前言
在某些 air gap 场景中,往往需要离线或使用代理 (Proxy), 例如:
- 需要通过 Proxy pull 容器镜像:
- Docker Hub:
docker.io - Quay:
quay.io - GCR:
gcr.io - GitHub 镜像库:
ghcr.io
- Docker Hub:
- 在某些企业环境中,需要通过代理访问外部服务
Docker 如何配置代理想必大家都很清楚,但是自从 Kubernetes 1.20 版本以后开始弃用 Docker, containerd 逐渐成为主流 CRI.
所以我们下面介绍一下如何配置 contaienrd 的 Proxy.
Notes:
还有一种场景需要 containerd 配置 proxy, 就是将 Dragonfly 和 containerd 结合使用 的时候。
Containerd 配置 Proxy 步骤
这里以通过 systemd 安装的 containerd 为例。
containerd 的配置一般位于 /etc/containerd/config.toml 下,service 文件位于:/etc/systemd/system/containerd.service
配置 Proxy 可以通过 service 环境变量方式配置,具体如下:
创建或编辑文件:/etc/systemd/system/containerd.service.d/http-proxy.conf
内容如下:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost"
配置后保存重启即可:
systemctl restart containerd.service
最佳实践:Proxy 中 NO_PROXY 的推荐配置
在配置 Proxy 时要特别注意,哪些要走 Proxy, 哪些不走 Proxy 要非常明确,避免出现网络访问异常甚至业务异常。
这里有个推荐 NO_PROXY 配置:
- 本地地址和网段:
localhost和127.0.0.1或127.0.0.0/8 - Kubernetes 的默认域名后缀:
.svc和.cluster.local - Kubernetes Node 的网段甚至所有应该不用 proxy 访问的 node 网段:
<nodeCIDR> - APIServer 的内部 URL:
<APIServerInternalURL> - Service Network:
<serviceNetworkCIDRs> - (如有)etcd 的 Discovery Domain:
<etcdDiscoveryDomain> - Cluster Network:
<clusterNetworkCIDRs> - 其他特定平台相关网段(如 DevOps, Git/制品仓库。..):
<platformSpecific> - 其他特定
NO_PROXY网段:<REST_OF_CUSTOM_EXCEPTIONS> - 常用内网网段:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
最终配置如下:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,.ewhisper.cn,<nodeCIDR>,<APIServerInternalURL>,<serviceNetworkCIDRs>,<etcdDiscoveryDomain>,<clusterNetworkCIDRs>,<platformSpecific>,<REST_OF_CUSTOM_EXCEPTIONS>"
总结
Kubernetes 1.20 以上,企业 air gap 场景下可能会需要用到 containerd 配置 Proxy.
本文介绍了其配置方法,以及配置过程中 NO_PROXY 的最佳实践。
本文由东风微鸣技术博客 EWhisper.cn 编写!
Containerd 如何配置 Proxy?的更多相关文章
- 为终端配置proxy
转自:https://my.oschina.net/u/818848/blog/677225?p=1 做开发的同学,应该都会经常接触终端,有些时候我们在终端会做一些网络操作,比如下载gradle包等, ...
- 说下vue工程中代理配置proxy
这个代理配置不需要后台进行ngnix代理跳转了,前端可以做.在vue.config.js文件中进行配置,如下: module.exports = { publicPath: process.env.V ...
- Docker 与 Containerd 并用配置
描述: 事实上,Docker 和 Containerd 是可以同时使用的,只不过 Docker 默认使用的 Containerd 的命名空间不是 default,而是 moby,此处为了更方便我们学习 ...
- chrome不能浏览任何网页,提示配置proxy,Ubuntu
自从在Ubuntu安装virtualbox以后,我的chrome浏览器就不能上网了,提示我检查proxy信息, 后面设置了noproxy就ok啦. 不用使用命令,一次设置,终身有效. 首先,安装gks ...
- git和命令行 配置proxy请求
GIT中的操作 设置全局代理 git config --global http.proxy socks5://127.0.0.1:8088 git config --global http.proxy ...
- Tomcat 下配置OpenLayers proxy.cgi代理
摘要:在OpenLayers访问WFS服务时,会遇到跨域的问题而导致服务无法访问.此时,需要在应用程序中设置代理,通过代理进行访问.本文介绍在tomcat进行proxy.cgi文件配置,以及在调用代理 ...
- 自学Zabbix13.2 分布式监控proxy配置
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix13.2 分布式监控proxy配置 分为两部分: 安装proxy 配置proxy ...
- zabbix配置server,proxy,agent架构
author: headsen chen date:2018-10-30 19:49:50 环境: centos 6.8_x86_64 zabbix-server: 192.168.1.130 z ...
- (33)zabbix proxy分布式监控配置
概述 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...
- proxy配置
关于config.js里面proxy的配置: proxy: { '/api': { target: 'http://192.168.***.**:8500', cha ...
随机推荐
- 第九章 kubectl命令行工具使用详解
1.管理k8s核心资源的三种基础方法 陈述式管理方法:主要依赖命令行CLI工具进行管理 声明式管理方法:主要依赖统一资源配置清单(manifest)进行管理 GUI式管理方法:主要依赖图形化操作界面( ...
- KingbaseES R6 集群在线删除standby节点
案例环境: 操作系统: [root@node1 ~]# cat /etc/centos-releaseCentOS Linux release 7.2.1511 (Core) 数据库:tes ...
- python中使用数组作为索引
链接:https://blog.csdn.net/yzlh2009/article/details/114118470 情况一,索引数组为整数值 情况二,索引数组为bool值
- 我的Vue之旅、01 深入Flexbox布局完全指南
花了几个小时整合的"A Complete Guide to Flexbox"最新版本,介绍了flexbox的所有属性,外带几个实用的例子. 传统布局.Flexbox 布局的传统解决 ...
- golang 实现笛卡尔积(泛型)
背景 input: [[a,b],[c],[d,e]] output: [[a,c,d],[a,c,e],[b,c,d],[b,c,e]] 思路:分治 预处理第一项:[a,b] -> [[a], ...
- 谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》
论文信息 论文标题:GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Medi ...
- 使用TLS安全的访问Minio服务
官方文档地址:http://docs.minio.org.cn/docs/master/how-to-secure-access-to-minio-server-with-tls 查看这篇文章的操作步 ...
- Elasticsearch: Ngrams, edge ngrams, and shingles
Ngrams和edge ngrams是在Elasticsearch中标记文本的两种更独特的方式. Ngrams是一种将一个标记分成一个单词的每个部分的多个子字符的方法. ngram和edge ngra ...
- Beats:运用 Filebeat 来对微服务 API 进行分析
文章转载自:https://elasticstack.blog.csdn.net/article/details/118145104 需要学习的是httpjson请求的写法 使用 Filebeat 的 ...
- 为什么数字化转型离不开 MES 系统?
确切的说应该是制造业企业的数字化转型离不开MES系统,原因很简单,制造业企业的核心工作是生产制造,做数字化转型就是对生产制造各个环节进行数字化改造,提质增效降成本,而MES系统是制造执行系统,是生产制 ...