Nginxをkubernetesにデプロイしようとしています、kubernetesのバージョンはv1.5.2です、私は3つのレプリカでnginxをデプロイしました、YAMLファイルは以下です、
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
そして今、私はその下のサービスを作成したので、ノードのポート30062でそのポート80を公開したいです。
kind: Service
apiVersion: v1
metadata:
name: nginx-ils-service
spec:
ports:
- name: http
port: 80
nodePort: 30062
selector:
app: nginx
type: LoadBalancer
このサービスは本来の状態では正常に機能していますが、端末上でもkubernetesダッシュボードだけでなく保留中として表示されています。
この問題を解決するために私を助けてください。ありがとう….
カスタムのKubernetesクラスタを使用しているようです(minikube
、kubeadm
などを使用)。この場合、(AWSやGoogle Cloudとは異なり)LoadBalancerは統合されていません。このデフォルト設定では、 NodePort
またはIngress Controllerのみを使用できます。 Ingress Controller を使えば、あなたのポッドに対応するドメイン名を設定することができます。
minikube
のサービスにアクセスするには、次のコマンドを実行する必要があります。
minikube service [-n NAMESPACE] [--url] NAME
ここでより多くの情報: Minikube GitHub
GCEまたはEKSを使用していない(kubeadm
を使用した)場合は、サービスのYAMLにexternalIPs
の仕様を追加できます。 eth0
のように、あなたのノードのプライマリインターフェースに関連するIPを使うことができます。その後、ノードの外部IPを使用して、サービスに外部からアクセスできます。
...
spec:
type: LoadBalancer
externalIPs:
- 192.168.0.10
あなたがミニキューブを使っているなら、魔法の命令があります!
$ minikube tunnel
うまくいけば、誰かがこれで数分を節約することができます。
私はkubeadmを使って単一ノードのk8sクラスタを作成しました。 PortForwardとkubectl proxyを試したところ、外部IPが保留中と表示されました。
$ kubectl get svc -n argocd argocd-server
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-server LoadBalancer 10.107.37.153 <pending> 80:30047/TCP,443:31307/TCP 110s
私の場合、私はこのようなサービスにパッチを当てました:
kubectl patch svc <svc-name> -n <namespace> -p '{"spec": {"type": "LoadBalancer", "externalIPs":["172.31.71.218"]}}'
この後、パブリックIPを介してサービスを開始しました
$ kubectl get svc argo-ui -n argo
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argo-ui LoadBalancer 10.103.219.8 172.31.71.218 80:30981/TCP 7m50s
NodePortを使用します。
kubectl run user-login --replicas = 2 --labels = "run = user-login" --image = kingslayerr/teamproject:version2 --port = 5000
kubectlはデプロイメントを公開しますuser-login --type = NodePort --name = user-login-service
kubectl describe services user-login-service(ポートを書き留めます)
kubect cluster-info(IP->マスターが稼働しているIPを取得)
あなたのサービスは(IP):(ポート)でアクセス可能です
同じ問題:
os> kubectl svcを入手するsabertooth-wordpress
名前タイプクラスタIP外部IPポート
right-sabertooth-wordpressLoadBalancer 10.97.130.7 "保留中" 80:30454/TCP、443:30427/TCPos>ミニキューブサービス一覧
| ---------- ---------------------------- | ------ -------------------------- |
| NAMESPACE | NAME | URL |
| ------------- | ---------------------------- | ------ -------------------------- |
|デフォルトクベルネテスノードポートなし
|デフォルト右sabertooth-mariadb |ノードポートなし
|デフォルト右のワードプレス| ---(http://192.168.99.100:30454|
| | | http://192.168.99.100:30427 |
|キューブシステムキューブdnsノードポートなし
|キューブシステムティラーノードポートなし
| ---------- ---------------------------- | ------ -------------------------- |
それは、しかし、それを介してアクセス可能です---(http://192.168.99.100:30454 。