Kubernetes Ingress hello-world

3017 ワード

文章は微信の公衆番号から転送された.https://mp.weixin.qq.com/s/6S7SErPpotFsF1TyWzexpA
 
  • 環境情報
  • ソフトウェア
    バージョン#バージョン#
    コメント
    OS
    CentOS Linux release 7.7.1908 (Core)
     
    Kubernetes
    v1.17.3
     
    Nginx Ingress Controller
    v1.6.3
    NginxメンテナンスのIngress Controller
    Network Plugin
    weave 2.6.1
     
    kubeadmin
    v1.17.3
     
  • 導入
  • Nginx Ingress Controllerの導入はnginx公式サイトを参照してください.ネット上の多くの文章にバージョンが表示されていないため、参考にするときにいくつかの問題が発生し、初心者にとってはまだ調査しにくいので、この文章がありました.デプロイ時に公式サイトを参照し、自分がデプロイしたバージョンとドキュメントの一貫性に注意してください.
  • yamlファイル
  • をダウンロード
    $ git clone https://github.com/nginxinc/kubernetes-ingress/
    $ cd kubernetes-ingress/deployments
    $ git checkout v1.6.3
    

    NOTE:ここでは、対応するバージョンのnginx ingress controllerデプロイメントファイルを取得する操作に注意します.
  • 対応するRBAC
  • を構成する.
    $ kubectl apply -f common/ns-and-sa.yaml
    $ kubectl apply -f rbac/rbac.yaml
    
  • Secret、ConfigMap、およびCDR(CustomResourceDefinitions)
  • を作成
    $ kubectl apply -f common/default-server-secret.yaml
    $ kubectl apply -f common/nginx-config.yaml
    $ kubectl apply -f common/custom-resource-definitions.yaml
    
  • daemonsetを選択してnginx ingress controller podを配置します.(deployment方式も選択可能)
  • $ kubectl apply -f daemon-set/nginx-ingress.yaml
    

    デルが選択したdaemon-set方式で導入するため、Ingress Controlが傍受する80および443ポートは、ノードごとに存在します.サービスを作成する必要はありません.
  • Pod状態をチェック
  • $ kubectl get pods --namespace=nginx-ingress
    

    Podが正常に実行されると、Ingress Controlの導入が完了します.具体的な構成項目はYAMLファイルを自分で見ることができます.ここでは、異なるバージョンに注意してください.
    *NOTE:問題が発生した場合は、公式のtroubleshootingドキュメントをご自身でご覧ください
     
  • 導入テストアプリケーション
  • アプリケーションを配備するときは、自分のNginx Ingress Controlのバージョンに注意し、異なるバージョン間で使用中に違いがあるか、一致しない表現があります.公式の例
    今回の導入も公式例complete-exampleを例に挙げました(導入時にcloneのrepoの中のexampleディレクトリで)
  • Pod
  • の導入
    $ kubectl create -f cafe.yaml
    
    
  • ingressとsecret
  • を作成
    $ kubectl create -f cafe-secret.yaml
    $ kubectl create -f cafe-ingress.yaml
    
  • yamlファイルに含まれるドメイン名「cafe.example.com」を/etc/hostsに追加するか、独自のドメイン名に変更します.
  •  echo "cafe.example.com 192.168.1.100" >> /etc/hosts
    
  • CURLアクセスリンクテスト
  • $ curl https://cafe.example.com/coffee -k
    Server address: 10.12.0.20:80
    Server name: coffee-7586895968-r16zn
    
    $ curl https://cafe.example.com/tea -k
    Server address: 10.12.0.22:80
    
    Server name: tea-7cd44fcb4d-xfw99
  • の により、 のK 8 SクラスタにNginx Ingress Controlを し、 なhello-world を してIngressの を する が に されました.しかし、 には くの を し、 する があります. えば、 の では、https://cafe.example.com/teaxxxxxx , https://cafe.example.com/tea/xxxxxおよびhttps://cafe.example.com/tea に、 サービスに に されます.
    の で と していきます.まずアウトラインを します.
  • Nginx Ingress Controllerの .
  • troubleshooting
  • Nginx Ingress ControllerのIngressオブジェクトの に づいて、 なるシーン( )に する.

  •