quiet - docker build with name and tag
servicio de kubernetes ip externa pendiente (10)
Creé un clúster de nodo único k8s usando kubeadm. Cuando probé PortForward y kubectl proxy , mostró IP externa como pendiente.
$ 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
En mi caso, parcheé el servicio así:
kubectl patch svc <svc-name> -n <namespace> -p ''{"spec": {"type": "LoadBalancer", "externalIPs":["172.31.71.218"]}}''
Después de esto, comenzó a servir sobre la IP pública
$ 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
Estoy tratando de implementar nginx en kubernetes, la versión de kubernetes es v1.5.2, he implementado nginx con 3 réplicas, el archivo YAML está debajo,
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
y ahora quiero exponer su puerto 80 en el puerto 30062 del nodo, para eso creé un servicio a continuación,
kind: Service
apiVersion: v1
metadata:
name: nginx-ils-service
spec:
ports:
- name: http
port: 80
nodePort: 30062
selector:
app: nginx
type: LoadBalancer
Este servicio funciona bien como debería, pero se muestra como pendiente no solo en el panel de control de Kubernetes sino también en la terminal.
así que ayúdame a resolver este problema. Gracias ...
Para acceder a un servicio en
minikube
, debe ejecutar el siguiente comando:
minikube service [-n NAMESPACE] [--url] NAME
Más información aquí: Minikube GitHub
Parece que está usando un Clúster Kubernetes personalizado (usando
minikube
,
kubeadm
o similar).
En este caso, no hay LoadBalancer integrado (a diferencia de AWS o Google Cloud).
Con esta configuración predeterminada, solo puede usar
NodePort
o un controlador de entrada.
Con el
controlador de ingreso
puede configurar un nombre de dominio que se asigna a su pod.
Si está utilizando Minikube, ¡hay un comando mágico!
$ minikube tunnel
Esperemos que alguien pueda ahorrar unos minutos con esto.
Enlace de referencia https://github.com/kubernetes/minikube/blob/master/docs/networking.md#loadbalancer-emulation-minikube-tunnel
Si no está utilizando GCE o EKS (usó
kubeadm
), puede agregar una especificación de
kubeadm
externalIPs
a su servicio YAML.
Puede usar la IP asociada con la interfaz principal de su nodo, como
eth0
.
Luego puede acceder al servicio externamente, utilizando la IP externa del nodo.
...
spec:
type: LoadBalancer
externalIPs:
- 192.168.0.10
Si se ejecuta en minikube , no olvide mencionar el espacio de nombres si no está utilizando el predeterminado.
servicio minikube << service_name >> --url --namespace = << namespace_name >>
Verifique los registros del controlador Kube. Pude resolver este problema estableciendo las etiquetas de clusterID en la instancia ec2 en la que implementé el clúster.
eliminar el servicio existente y crear un mismo servicio nuevo resolvió mis problemas. Mi problema es que el equilibrio de carga que define Ip I se usa para que el punto final externo esté pendiente. Cuando cambié una nueva IP de equilibrio de carga, todavía no funcionaba. Finalmente, eliminar el servicio existente y crear uno nuevo resolvió mi problema.
mismo problema:
os> kubectl get svc right-sabertooth-wordpress
NOMBRE TIPO CLUSTER-IP EXTERNAL-IP PUERTO (S)
right-sabertooth-wordpress LoadBalancer 10.97.130.7 "pendiente" 80: 30454 / TCP, 443: 30427 / TCPos> lista de servicio de minikube
| ------------- | ---------------------------- | ------ -------------------------- |
El | NAMESPACE | NOMBRE | URL |
| ------------- | ---------------------------- | ------ -------------------------- |
El | por defecto | kubernetes | Sin puerto de nodo |
El | por defecto | right-sabertooth-mariadb | Sin puerto de nodo |
El | por defecto | right-sabertooth-wordpress | http://192.168.99.100:30454 |
El | El | El | http://192.168.99.100:30427 |
El | sistema kube | kube-dns | Sin puerto de nodo |
El | sistema kube | despliegue del timón | Sin puerto de nodo |
| ------------- | ---------------------------- | ------ -------------------------- |
Sin embargo, es accesible a través de esa http://192.168.99.100:30454 .
Utilice NodePort:
kubectl ejecutar inicio de sesión de usuario --replicas = 2 - etiquetas = "ejecutar = inicio de sesión de usuario" --imagen = kingslayerr / teamproject: versión2 --port = 5000
kubectl expone la implementación de inicio de sesión de usuario --type = NodePort --name = user-login-service
kubectl describe los servicios user-login-service (anote el puerto)
kubect cluster-info (IP-> Obtener la IP donde se ejecuta el maestro)
Se puede acceder a su servicio en (IP) :( puerto)