国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Harbor私有倉庫搭建并配置https對接docker與kubernetes

這篇具有很好參考價值的文章主要介紹了Harbor私有倉庫搭建并配置https對接docker與kubernetes。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、環(huán)境介紹

默認情況下,Harbor 不附帶證書。可以在沒有安全保護的情況下部署 Harbor,以便您可以通過 HTTP 連接到它。在生產環(huán)境中,推薦始終使用 HTTPS。要配置 HTTPS,必須創(chuàng)建 SSL 證書??梢允褂糜墒苄湃蔚牡谌?CA 簽名的證書,也可以使用自簽名證書。本文以自簽名證書為例。

使用到的各個軟件版本

操作系統(tǒng)版本:ubuntu 20.04
harbor版本:v2.5.3-797c3536
docker版本:20.10.8
kubernetets版本:1.22.2
harbor地址:192.168.10.112   域名:harbor.snow.com
master01地址:192.168.10.100 

二、倉庫部署

配置主機名與hosts文件

root@harbor:~# cat /etc/hosts
127.0.0.1 localhost
192.168.10.112 harbor.snow.com
修改主機名
root@barbor:~# hostnamectl set-hostname harbor
root@harbor:~# bash
root@harbor:~# hostname
harbor

下載harbor安裝包

root@harbor:~#wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
解壓harbor安裝包
root@harbor:~# tar xf harbor-offline-installer-v2.5.3.tgz -C /usr/local/src/
安裝docker-compose
root@harbor:~# curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

生成證書頒發(fā)機構證書及私鑰

root@harbor:/usr/local/src/harbor/certs# openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
............................++++
............................................++++
e is 65537 (0x010001)
root@harbor:/usr/local/src/harbor/certs# openssl req -x509 -new -nodes -sha512 -days 3650 \
>  -subj "/C=CN/ST=Shanghai/L=Shanghai/O=SmartX/OU=Lab/CN=harbor.snow.com" \
>  -key ca.key \
>  -out ca.crt
root@harbor:/usr/local/src/harbor/certs# ls
ca.crt  ca.key

生成服務器私鑰及證書簽名請求(CSR)

root@harbor:/usr/local/src/harbor/certs# openssl genrsa -out harbor.snow.com.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
...........++++
.....................................................................++++
e is 65537 (0x010001)

生成證書簽名請求
root@harbor:/usr/local/src/harbor/certs# openssl req -sha512 -new \
> -subj "/C=CN/ST=Shanghai/L=Shanghai/O=SmartX/OU=Lab/CN=harbor.snow.com" \
> -key harbor.snow.com.key \
> -out harbor.snow.com.csr
root@harbor:/usr/local/src/harbor/certs# ls
ca.crt  ca.key  harbor.snow.com.csr  harbor.snow.com.key

生成 x509 v3 擴展文件。
無論使用 FQDN 還是 IP 地址連接到Harbor服務器,都必須創(chuàng)建此文件,以便keyi 為的 Harbor 主機生成符合主題備用名稱 (SAN) 和 x509 v3 的證書擴展要求。

root@harbor:/usr/local/src/harbor/certs# cat v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.snow.top
DNS.2=snow.top
DNS.3=harbor

使用該v3.ext文件為 Harbor 服務器生成證書。

root@harbor:/usr/local/src/harbor/certs# openssl x509 -req -sha512 -days 3650 \
> -extfile v3.ext \
> -CA ca.crt -CAkey ca.key -CAcreateserial \
> -in harbor.snow.com.csr \
> -out harbor.snow.com.crt
Signature ok
subject=C = CN, ST = Shanghai, L = Shanghai, O = SmartX, OU = Lab, CN = harbor.snow.com
Getting CA Private Key

將 harbor.snow.com.crt 轉換為 harbor.snow.com.cert , 供 Docker 使用。Docker 守護進程將.crt文件解釋為 CA 證書,.cert將文件解釋為客戶端證書。

root@harbor:/usr/local/src/harbor/certs# openssl x509 -inform PEM -in harbor.snow.com.crt -out harbor.snow.com.cert

配置 harbor yml文件,注意需要修改hostname與指定證書位置。

root@harbor:/usr/local/src/harbor# cat harbor.yml |more
# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: harbor.snow.com

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /usr/local/src/harbor/certs/harbor.snow.com.cert
  private_key: /usr/local/src/harbor/certs/harbor.snow.com.key

安裝harbor

root@harbor:/usr/local/src/harbor# ./install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 20.10.12

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.25.0

[Step 2]: loading Harbor images ...
Loaded image: goharbor/harbor-portal:v2.5.3
Loaded image: goharbor/harbor-core:v2.5.3
Loaded image: goharbor/redis-photon:v2.5.3
Loaded image: goharbor/prepare:v2.5.3
Loaded image: goharbor/harbor-db:v2.5.3
Loaded image: goharbor/chartmuseum-photon:v2.5.3
Loaded image: goharbor/harbor-jobservice:v2.5.3
Loaded image: goharbor/harbor-registryctl:v2.5.3
Loaded image: goharbor/nginx-photon:v2.5.3
Loaded image: goharbor/notary-signer-photon:v2.5.3
Loaded image: goharbor/harbor-log:v2.5.3
Loaded image: goharbor/harbor-exporter:v2.5.3
Loaded image: goharbor/registry-photon:v2.5.3
Loaded image: goharbor/notary-server-photon:v2.5.3
Loaded image: goharbor/trivy-adapter-photon:v2.5.3


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
prepare base dir is set to /usr/local/src/harbor
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Clearing the configuration file: /config/portal/nginx.conf
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/log/rsyslog_docker.conf
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/registry/passwd
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/db/env
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /data/secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir



[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registryctl   ... done
Creating registry      ... done
Creating redis         ... done
Creating harbor-db     ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
? ----Harbor has been installed and started successfully.----

安裝完harbor后驗證

root@harbor:/usr/local/src/harbor# docker ps 
CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS                    PORTS                                                                            NAMES
0304ebf0cddc   goharbor/nginx-photon:v2.5.3         "nginx -g 'daemon of…"   38 seconds ago   Up 35 seconds (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp   nginx
10d1ff19120b   goharbor/harbor-jobservice:v2.5.3    "/harbor/entrypoint.…"   38 seconds ago   Up 36 seconds (healthy)                                                                                    harbor-jobservice
2d5e3d8877f8   goharbor/harbor-core:v2.5.3          "/harbor/entrypoint.…"   39 seconds ago   Up 38 seconds (healthy)                                                                                    harbor-core
ee6c12da89d9   goharbor/harbor-db:v2.5.3            "/docker-entrypoint.…"   43 seconds ago   Up 39 seconds (healthy)                                                                                    harbor-db
5b7455e56733   goharbor/redis-photon:v2.5.3         "redis-server /etc/r…"   43 seconds ago   Up 39 seconds (healthy)                                                                                    redis
a0c279ca0206   goharbor/harbor-registryctl:v2.5.3   "/home/harbor/start.…"   43 seconds ago   Up 41 seconds (healthy)                                                                                    registryctl
478f35433f69   goharbor/registry-photon:v2.5.3      "/home/harbor/entryp…"   43 seconds ago   Up 39 seconds (healthy)                                                                                    registry
eb33121f4126   goharbor/harbor-portal:v2.5.3        "nginx -g 'daemon of…"   43 seconds ago   Up 39 seconds (healthy)                                                                                    harbor-portal
b0c7ab3a7133   goharbor/harbor-log:v2.5.3           "/bin/sh -c /usr/loc…"   44 seconds ago   Up 43 seconds (healthy)   127.0.0.1:1514->10514/tcp                                                        harbor-log

修改宿主機hosts文件,做好harbor主機的域名解析,在瀏覽器使用域名訪問harbor服務器發(fā)現(xiàn)提示(忽略域名,域名是第一次測試的時候用的)

harbor配置https,kubernetes,docker,docker,kubernetes,https
在當前頁面用鍵盤輸入thisisunsafe,不是在地址欄輸入,就直接敲鍵盤就行了,頁面即會自動刷新進入網頁
harbor配置https,kubernetes,docker,docker,kubernetes,https
使用默認用戶名admin,密碼Harbor12345即可登錄。

harbor配置https,kubernetes,docker,docker,kubernetes,https

三、配置docker客戶端

將證書發(fā)送到master01服務器,注意在操作之前要先在master01創(chuàng)建好存放證書的文件夾/etc/docker/certs.d/harbor.snow.com

root@master01:~# mkdir -p /etc/docker/certs.d/harbor.snow.com
root@harbor:/usr/local/src/harbor/certs# scp harbor.snow.com.cert 192.168.10.100:/etc/docker/certs.d/harbor.snow.com/
root@192.168.10.100's password: 
harbor.snow.com.cert                                                                                        100% 2102     2.3MB/s   00:00      

root@harbor:/usr/local/src/harbor/certs# scp harbor.snow.com.key 192.168.10.100:/etc/docker/certs.d/harbor.snow.com/
root@192.168.10.100's password: 
harbor.snow.com.key                                                                                         100% 2045     2.0MB/s   00:00
  
root@harbor:/usr/local/src/harbor/certs# scp ca.crt  192.168.10.100:/etc/docker/certs.d/harbor.snow.com
root@192.168.10.100's password: 
ca.crt                                                                                                      100% 2045     2.0MB/s   00:00    

在master01節(jié)點看到證書已經成功發(fā)送過來

root@master01:/etc/docker/certs.d/harbor.snow.com# ls
ca.crt  harbor.snow.com.cert  harbor.snow.com.key

修改docker的daemon.json文件,使其信任harbor.snow.com倉庫

root@master01:/etc/docker# cat daemon.json 
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries":["harbor.snow.com"],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}

重啟docker服務并修改其hosts文件使master01節(jié)點能夠通過域名找到對應的harbor倉庫

root@master01:~# systemctl restart docker
root@master01:~# cat /etc/hosts
127.0.0.1 localhost
192.168.10.112 harbor.snow.com

登錄倉庫

root@master01:~# docker login harbor.snow.com
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

上傳鏡像進行測試,注意要提前在web頁面創(chuàng)建好新的項目。

root@master01:~# docker images
REPOSITORY                                TAG             IMAGE ID       CREATED         SIZE
calico/cni                                v3.19.2         05bf027c9836   17 months ago   146MB

為鏡像改名字
root@master01:~# docker tag calico/cni:v3.19.2 harbor.snow.com/calico/cni:v3.19.2

推送到鏡像倉庫
root@master01:~# docker push harbor.snow.com/calico/cni:v3.19.2
The push refers to repository [harbor.snow.com/calico/cni]
758850cabe72: Pushed 
e88fd392bb0c: Pushed 
fb44224b4823: Pushed 
v3.19.2: digest: sha256:00a619424a20d1b31c0f65d1194484aebe9f90dfc1d4d6396ce706941004860b size: 946

推送到鏡像倉庫后即可在web頁面看到剛剛推送上去鏡像
harbor配置https,kubernetes,docker,docker,kubernetes,https

鏡像拉取測試

root@master01:~# docker images
REPOSITORY                                  TAG             IMAGE ID       CREATED         SIZE
kubernetesui/dashboard                      v2.3.1          e1482a24335a   18 months ago   220MB

root@master01:~# docker pull harbor.snow.com/calico/cni:v3.19.2
v3.19.2: Pulling from calico/cni
Digest: sha256:00a619424a20d1b31c0f65d1194484aebe9f90dfc1d4d6396ce706941004860b
Status: Downloaded newer image for harbor.snow.com/calico/cni:v3.19.2
harbor.snow.com/calico/cni:v3.19.2

root@master01:~# docker images
REPOSITORY                                  TAG             IMAGE ID       CREATED         SIZE
kubernetesui/dashboard                      v2.3.1          e1482a24335a   18 months ago   220MB
harbor.snow.com/calico/cni                  v3.19.2         05bf027c9836   17 months ago   146MB

四、K8S集群配置使用私有鏡像倉庫Harbor

在配置k8s使用harbor之前需要先完成本文的第三步,先讓docker可以正常使用harbor。
在docker成功登錄harbor后會在用戶家目錄生成一個秘鑰文件

root@master01:~# cat /root/.docker/config.json
{
	"auths": {
		"harbor.snow.com": {
			"auth": "YWRtaW46SGFyYm9yMTIzNDU="
		}
	}
}

將秘鑰進行base64加密

root@master01:~# cat /root/.docker/config.json | base64 -w 0
ewoJImF1dGhzIjogewoJCSJoYXJib3Iuc25vdy5jb20iOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9Cn0=

創(chuàng)建用戶harbor認證的secret的yaml文件

root@master01:~/secret# cat registry-pull-secret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: registry-pull-secret
  namespace: kube-system
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJoYXJib3Iuc25vdy5jb20iOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9Cn0=
type: kubernetes.io/dockerconfigjson

創(chuàng)建secret,注意secret為名稱空間級別的資源,調用這個secret的yaml文件要與此secret在同一個名稱空間下。

root@master01:~/secret# kubectl delete -f registry-pull-secret.yaml 
secret "registry-pull-secret" deleted
root@master01:~/secret# kubectl apply -f registry-pull-secret.yaml 
secret/registry-pull-secret created
root@master01:~/secret# kubectl get secret
NAME                   TYPE                                  DATA   AGE
default-token-rxd89    kubernetes.io/service-account-token   3      5h2m
registry-pull-secret   kubernetes.io/dockerconfigjson        1      3h

最后只需要在需要去harbor拉取鏡像的pod的yaml文件中添加如下配置即可(只展示出了完成yaml文件的部分內容)注意其是與containers語句是平級的。

template:
    metadata:
      labels:
        k8s-app: metrics-server
    spec:
      imagePullSecrets:
        - name: registry-pull-secret
      containers:
        image: harbor.snow.com/base/metrics-server:v0.5.0
        imagePullPolicy: Always

配置完成后k8s集群即可成功拉取harbor中的鏡像。如果在harbor中將要訪問的鏡像級別設置為公開,則不需要secret認證即可正常拉取。

ps:以上內容在本人實現(xiàn)環(huán)境中已試驗成功,如發(fā)現(xiàn)有問題或表述不清的地方歡迎指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-771471.html

到了這里,關于Harbor私有倉庫搭建并配置https對接docker與kubernetes的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Docker使用mysql:5.6和 owncloud 鏡像,構建一個個人網盤,安裝搭建私有倉庫 Harbor

    Docker使用mysql:5.6和 owncloud 鏡像,構建一個個人網盤,安裝搭建私有倉庫 Harbor

    在網頁中輸入本機的IP地址 在網頁中輸入本機的IP地址加上:8080,用戶名admin密碼Harbor12345。登錄成功頁面如下:

    2024年02月11日
    瀏覽(42)
  • Docker本地私有倉庫、harbor私有倉庫部署與管理

    Docker本地私有倉庫、harbor私有倉庫部署與管理

    docker本地倉庫,存放鏡像,本地的機器上傳和下載,pull/push。 使用私有倉庫有許多優(yōu)點: ①節(jié)省網絡帶寬,針對于每個鏡像不用每個人都去中央倉庫上面去下載,只需要從私有倉庫中下載即可; ②提供鏡像資源利用,針對于公司內部使用的鏡像,推送到本地的私有倉庫中,

    2024年02月11日
    瀏覽(20)
  • docker容器:本地私有倉庫、harbor私有倉庫部署與管理

    docker容器:本地私有倉庫、harbor私有倉庫部署與管理

    目錄 一、本地私有倉庫 1、本地私有倉庫簡介 2、搭建本地私有倉庫 3、容器重啟策略介紹 二、harbor私有倉庫部署與管理 1、什么是harbor 2、Harbor的特性 3、Harbor的構成 4、harbor部署及配置 ①部署docker-compose ②部署Harbor服務 ③登錄創(chuàng)建項目 ④登錄倉庫并上傳鏡像 5、客戶端測試

    2024年02月04日
    瀏覽(38)
  • Docker私有倉庫harbor

    目錄 Docker私有倉庫harbor Harbor私有倉庫介紹 Harbor部署 harbor頁面不顯示排錯思路 Harbor的使用 Harbor拉鏡像 自制鏡像推送到Harbor 自動構建wordpress鏡像 部署項目 Harbor 是為企業(yè)用戶設計的容器鏡像倉庫開源項目,包括了權限管理(RBAC)、LDAP、審計、安全漏洞掃描、鏡像驗真、管理界

    2024年02月03日
    瀏覽(20)
  • 基于CentOS搭建私有倉庫harbor

    基于CentOS搭建私有倉庫harbor

    環(huán)境: ? ? ? ? 操作系統(tǒng):CentOS Linux 7 (Core) ? ? ? ? 內核:?Linux 3.10.0-1160.el7.x86_64 目錄 安裝搭建harbor (1)安裝docker編排工具docker compose (2)下載Harbor 安裝包 (3)修改配置文件 (4)添加主機映射 安裝啟動harbor 安裝后驗證 使用Harbor ①訪問瀏覽器 ②登錄 ③新建一個項目

    2024年02月11日
    瀏覽(22)
  • docker私有倉庫harbor部署

    docker私有倉庫harbor部署

    Harbor是一個用于存儲和分發(fā)Docker鏡像的企業(yè)級Registry服務器,通過添加一些企業(yè)必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。 作為一個企業(yè)級私有Registry服務器,Harbor提供了更好的性能和安全。提升用戶使用Registry構建和運行環(huán)境傳輸鏡像的效率。

    2024年02月11日
    瀏覽(18)
  • Docker-harbor私有倉庫

    Docker-harbor私有倉庫

    Docker的核心:鏡像、容器、倉庫 倉庫:保存鏡像 私有:自定義用戶的形式登錄倉庫,拉取或者上傳鏡像(內部管理的用戶) harbor是由VMware公司開發(fā)的,開源的企業(yè)級的 docker registry項目。幫助用戶快速搭建一個企業(yè)級的Docker倉庫的服務。 支持中文 1、 基于角色進行控制,用戶和

    2024年02月04日
    瀏覽(17)
  • Docker--harbor私有倉庫部署與管理

    Docker--harbor私有倉庫部署與管理

    ------------------------------------ Harbor 簡介 ------------------------------------ (1)什么是Harbor Harbor 是 VMware 公司開源的企業(yè)級 Docker Registry 項目,其目標是幫助用戶迅速搭建一個企業(yè)級的 Docker Registry 服務。 Harbor以 Docker 公司開源的 Registry 為基礎,提供了圖形管理 UI 、基于角色的訪問

    2024年02月08日
    瀏覽(26)
  • Docker本地私有倉庫搭建配置指導

    Docker本地私有倉庫搭建配置指導

    因內網主機需要拉取鏡像進行Docker應用,因此需要一臺帶外主機作為內網私有倉庫來提供內外其他docker業(yè)務主機使用。參考架構如下: 相關資源:加密、Distribution registry、Create and Configure Docker Registry、Registry部署、Distribution Registry v2 authentication、docker-registry 注 :不要在已有

    2024年01月18日
    瀏覽(26)
  • Docker registry鏡像倉庫,私有倉庫及harbor管理詳解

    Docker registry鏡像倉庫,私有倉庫及harbor管理詳解

    目錄 registry鏡像倉庫概述 Docker 鏡像倉庫(Docker Registry): registry 容器: 私有倉庫概述 搭建本地私有倉庫示例 Harbor概述 harbor架構 詳解構成 Harbor由容器構成 Harbor部署示例 環(huán)境準備 部署Docker-Compose服務 部署 Harbor 服務 啟動Harbor 查看 Harbor 啟動鏡像 創(chuàng)建一個新項目 在其他客

    2024年01月18日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包