ingress-nginx コントローラーのインストール

基本的なバージョンと環境情報:

MacBook Pro Apple M2 Max

VMware Fusion Player バージョン 13.0.2 (21581413)

ubuntu-22.04.2-live-server-arm64

k8s-v1.27.3

ドッカー 24.0.2(コンテナー)

イングレス-nginx/コントローラー-v1.8.1

インストールの準備:

公式インストールドキュメント:インストールガイド - Ingress-Nginx コントローラー

ingress-nginx バージョンテーブル

インストールプロセス:

ここでは helm メソッドは使用されませんが、インストールには YAML マニフェスト メソッドが使用されます。

ingress-nginx https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml をダウンロードし、名前を ingress-nginx-deploy.ymal に変更します。

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml -O ingress-nginx-deploy.ymal

次の例外が発生します。

--2023-07-06 09:05:24--  https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0, ::
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... failed: Connection refused.
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Connection refused.

それは科学的なインターネットの利用によって解決できます。

yaml ファイルのダウンロードの問題を解決したら、インストールを開始できます。

kubectl apply -f   ingress-nginx-deploy.ymal

インストールログは次のとおりです。

zhangzk@test:~$ kubectl apply -f ingress-nginx-deploy.ymal

名前空間/ingress-nginx が作成されました

サービスアカウント/ingress-nginxが作成されました

serviceaccount/ingress-nginx-admission が作成されました

role.rbac.authorization.k8s.io/ingress-nginx が作成されました

role.rbac.authorization.k8s.io/ingress-nginx-admission が作成されました

clusterrole.rbac.authorization.k8s.io/ingress-nginx が作成されました

clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission が作成されました

rolebinding.rbac.authorization.k8s.io/ingress-nginx が作成されました

rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission が作成されました

clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx が作成されました

clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission が作成されました

configmap/ingress-nginx-controller が作成されました

サービス/ingress-nginx-controllerが作成されました

service/ingress-nginx-controller-admission が作成されました

deployment.apps/ingress-nginx-controller が作成されました

job.batch/ingress-nginx-admission-create が作成されました

job.batch/ingress-nginx-admission-patch が作成されました

ingressclass.networking.k8s.io/nginx が作成されました

validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission が作成されました

進行状況を確認します。

kubectl get pods -n ingress-nginx

ingress-nginx-XX の POD が ImagePullBackOff および ContainerCreating 状態にあることがわかります。

zhangzk@test:~$ kubectl get pods -n ingress-nginx
NAME                                        READY   STATUS              RESTARTS   AGE
ingress-nginx-admission-create-7lwzr        0/1     ImagePullBackOff    0          33m
ingress-nginx-admission-patch-9ghn2         0/1     ImagePullBackOff    0          33m
ingress-nginx-controller-7fcc694bd4-qgt6l   0/1     ContainerCreating   0          33m

ポッドでエラーが発生したかどうかを確認します。

kubectl describe pod ingress-nginx-admission-create-7lwzr  -n ingress-nginx

 ログは次のとおりです。

Name:             ingress-nginx-admission-create-7lwzr
Namespace:        ingress-nginx
Priority:         0
Service Account:  ingress-nginx-admission
Node:             zzk-2/192.168.19.130
Start Time:       Thu, 06 Jul 2023 09:00:51 +0800

Status:           Pending
IP:               10.244.2.7

......

Events:
  Type     Reason     Age                   From               Message
  ----     ------     ----                  ----               -------
  Normal   Scheduled  39m                   default-scheduler  Successfully assigned ingress-nginx/ingress-nginx-admission-create-7lwzr to zzk-2
  Normal   Pulling    34m (x4 over 39m)     kubelet            Pulling image "registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b"
  Warning  Failed     33m (x4 over 38m)     kubelet            Failed to pull image "registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b": rpc error: code = DeadlineExceeded desc = failed to pull and unpack image "registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b": failed to resolve reference "registry.k8s.io/ingress-nginx/kube-webhook-certgen@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b": failed to do request: Head "https://us-west2-docker.pkg.dev/v2/k8s-artifacts-prod/images/ingress-nginx/kube-webhook-certgen/manifests/sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b": dial tcp 142.251.8.82:443: i/o timeout
  Warning  Failed     33m (x4 over 38m)     kubelet            Error: ErrImagePull
  Warning  Failed     32m (x7 over 38m)     kubelet            Error: ImagePullBackOff
  Normal   BackOff    2m39s (x37 over 38m)  kubelet            Back-off pulling image "registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b" 

イメージの取得に失敗したことが判明しました: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407@sha256:543c40fd093964bc9ab509d3e791f9989963021f1e9e4c9c7b6700b02bfb227b

再び古い問題に戻りますが、壁の問題により registry.k8s.io イメージ ウェアハウスにアクセスできません。

中国でよく知られている k8s イメージには次のものがあります。

レジストリ.lank8s.cn

registry.cn-hangzhou.aliyuncs.com/google_containers

gcr.azk8s.cn (2020 年以降、Azure China IP でのみ使用されます)

Alibaba Cloud のイメージにはコマンド スペースがないため、パスを変更する必要がある場合があります。また、定期的に同期されるため、名前を変更したり、紛失したりする必要がある場合があります。

たとえば、ingress-nginx をインストールする場合、2 つのイメージが関係するため、次のように置き換える必要があります。

registry.k8s.io ミラーアドレス

Alibaba Cloud ミラーアドレス

registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407

registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407

registry.k8s.io/ingress-nginx/controller:v1.8.0

registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.0

Lank8s のイメージはリアルタイムであり、元の名前空間を維持します。プレフィックスを変更するだけで済みます。非常に使いやすいです。これは個人的にサポートされているイメージです。能力がある場合は、さらにスポンサーすることができます。

たとえば、ingress-nginx をインストールする場合、2 つのイメージが関係するため、次のように置き換える必要があります。

registry.k8s.io ミラーアドレス

LANK8Sミラーアドレス

registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20230407

registry.lank8s.cn/ingress-nginx/kube-webhook-certgen:v20230407

registry.k8s.io/ingress-nginx/controller:v1.8.0

registry.lank8s.cn/ingress-nginx/controller:v1.8.0

lank8s.cn とは何ですか? 「lank8s.cn とは何ですか?」のドキュメントを参照してください。

イメージの法的検証については、以下を参照して署名されたコンテナ イメージを検証できます。

ingress-nginx-deploy.yaml ファイル内のイメージ アドレス registry.k8s.io を registry.lank8s.cn に置き換えてインストールするだけです。

kubectl apply -f ingress-nginx-deploy.ymal 

registry.lank8s.cn は信頼性のみを保証し、ダウンロード速度を保証するものではないため、イメージのダウンロードに数分かかる場合があるため、ingress-nginx のコントローラーのステータスを確認するためにも数分待つ必要があります。

zhangzk@test:~$ kubectl get pods -n ingress-nginx
NAME                                       READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-2lz4v       0/1     Completed   0          5m46s
ingress-nginx-admission-patch-c6896        0/1     Completed   0          5m46s
ingress-nginx-controller-7575fb546-q29qn   1/1     Running     0          5m46s

この時点で、ingress-nginx-controller は正常に作成されており、イングレス ルールの作成を開始できます。

おすすめ

転載: blog.csdn.net/zhangzhaokun/article/details/131572345