AWS + Kubeadm(k8s 1.4)READMEに従ってみました:
https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx
しかし、それはうまくいかないようです。私はたるんで周りに尋ねました、そしてyamlsは時代遅れであるようです、それは私がそのように修正しなければなりませんでした
最初に、gitで見つかったyamlを使用してdefault-http-backendをデプロイしました:
次に、ingress-RCiを変更する必要がありました。
(healthz
反映するパスを取得するための変更と、スラックに応じて明らかに必要なdefault-backend
ポートの変更に注意してください10254
)
すべてが正常に実行されていますkubectl get pods
。ingress-controllerがkubectl get rc
表示されます。ingress-rcの場合は111が表示されます。
次に、単純なechoheadersアプリケーションをデプロイします(git readmeによる):
kubectl run echoheaders --image=gcr.io/google_containers/echoserver:1.4 --replicas=1 --port=8080
kubectl expose deployment echoheaders --port=80 --target-port=8080 --name=echoheaders-x
次に、簡単な入力を作成しました:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
spec:
backend:
serviceName: echoheaders-x
servicePort: 80
両方とも良い兆候get ing
をdescribe ing
示します:
Name: test-ingress
Namespace: default
Address: 172.30.2.86 <---this is my private ip
Default backend: echoheaders-x:80 (10.38.0.2:8080)
Rules:
Host Path Backends
---- ---- --------
* * echoheaders-x:80 (10.38.0.2:8080)
しかし、「サーバーに到達できません」というメッセージが表示されるため、ノードのパブリックIPにアクセスしようとしても機能しないようです。
同じことを考えてここに来たすべての人のためにOK ..これが私がそれを解決した方法です。
PRECURSOR:ドキュメントがあいまいなため、ドキュメントを読むと、READMEを実行するとhttp:// {MY_MASTER_IP}にアクセスしてサービスにアクセスできるという印象を受けましたが、これは正しくありません。
ingress_controllerを取得するには、ingress-controllerのサービスを作成し、を介してそのサービスを公開する必要がありましたnodePort
。これにより、echoheaders
http:// {MASTER_IP}:{NODEPORT}を介してサービス(READMEの場合)にアクセスできるようになりました。
nodePortには、ランダムなポート番号を取得するという「問題」があります。これは、入力の目的をいくらか無効にします...これを解決するために、次のことを行いました。
まず、より低いnodePortIPを許可するようにkube-apiを編集する必要がありました。
vi /etc/kubernetes/manifests/kube-apiserver.json
次に、kube-apiコンテナの引数セクションに次を追加します。 "--service-node-port-range=80-32767",
これにより、nodePortを80〜32767にすることができます。
**注:私はおそらくこれを本番環境に推奨しないでしょう... **
次に、kubectl edit svc nginx-ingress-controller
nodePortをポート80に手動で編集しました。
このようにして、{MY_MASTER_IP}に移動してエコーヘッダーにアクセスできます。
今私ができることは、{MY_MASTER_IP}を指し、ホストに基づいて異なるドメインを持っていることです(READMEと同様)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加