containerd 配置代理服務器

背景

containerd 安裝的環境在內網,沒法拉取外網 dockerhub 的鏡像,爲了實現 拉取外網鏡像,須要 containerd 服務配置正向代理,使 containerd 能夠經過代理訪問 外網。nginx

搭建代理服務器

代理服務器選擇

代理服務器能夠選用 nginx 和 squid。squid 代理支持 https 代理但性能不如 nginx 代理好,nginx 默認不支持 https 正向代理,但能夠經過安裝 ngx_http_proxy_connect_module 模塊支持。本次代理選用nginx搭建。git

配置 nginx https代理

編譯nginx源碼集成 ngx_http_proxy_connect_module 模塊

  1. 下載 ngx_http_proxy_connect_module 模塊github

    # cd /root
    # git clone git@github.com:chobits/ngx_http_proxy_connect_module.git
  2. 下載 nginx 源碼並編譯docker

    # wget http://nginx.org/download/nginx-1.9.2.tar.gz
    # tar -xzvf nginx-1.9.2.tar.gz
    # cd nginx-1.9.2/
    # patch -p1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect.patch
    # ./configure --add-module=/path/to/ngx_http_proxy_connect_module
    # make && make install

nginx配置示例

server {
     listen                         3128;

     # dns resolver used by forward proxying
     resolver 8.8.8.8;

     # forward proxy for CONNECT request
     proxy_connect;
     proxy_connect_allow            443 563;
     # forward proxy for non-CONNECT request
     location / {
         proxy_pass http://$host;
         proxy_set_header Host $host;
     }
 }

配置成功後啓動 nginx 服務api

# /usr/local/nginx/sbin/nginx

nginx https代理容器版本地址:https://github.com/seamounts/...

設置 containerd 服務代理

代理服務器搭建成功後便可配置 containerd 服務使用該代理拉取鏡像。配置以下:bash

# mkdir /etc/systemd/system/containerd.service.d
# cat > /etc/systemd/system/containerd.service.d/http_proxy.conf << EOF
> [Service]
> Environment="HTTP_PROXY=http://<proxy_ip>:<proxy_port>/"
> EOF
#
# # 配置 no_proxy 指定不走代理的域名或ip
# cat > /etc/systemd/system/containerd.service.d/no_proxy.conf << EOF
> [Service]
> Environment="NO_PROXY=http://<apiserver_ip>:<apiserver_port>/"
> EOF

重啓 containerd 服務服務器

# systemctl daemon-reload
# systemctl restart containerd

重啓後測試拉取外網鏡像性能

# crictl --debug pull nginx
DEBU[0000] PullImageRequest: &PullImageRequest{Image:&ImageSpec{Image:nginx,},Auth:nil,SandboxConfig:nil,}
DEBU[0004] PullImageResponse: &PullImageResponse{ImageRef:sha256:5a3221f0137beb960c34b9cf4455424b6210160fd618c5e79401a07d6e5a2ced,}
Image is up to date for sha256:5a3221f0137beb960c34b9cf4455424b6210160fd618c5e79401a07d6e5a2ced
#

到此,containerd 代理配置完成測試

相關文章
相關標籤/搜索