我已经为kubernetes dashboard应用了Yaml。
现在,我想使用服务器的公共IP https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/#objectives
公开此服务。但是我的集群上没有服务/部署:
$ sudo kubectl get services kubernetes
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 63d
$ sudo kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
我做错了什么?
感谢您的帮助
答案 0 :(得分:1)
您运行的命令是在默认名称空间中获取对象。
但是,仪表板部署在 kube-system 名称空间上。
kubectl -n kube-system get services kubernetes
kubectl -n kube-system get deployment
我根据您共享的kubernetes dashboard链接向您提供此信息。即YAML file
答案 1 :(得分:0)
好的,谢谢,现在我有了正确的名字:
$insertion = $connection->prepare("INSERT INTO products_tbl(product_name, product_manufacturer, product_category)
VALUES(:productNameInput,
IFNULL(:productManufacturerInput, DEFAULT(product_manufacturer)),
IFNULL(:productCategoryInput, DEFAULT(product_category))
)
");
$insertion->execute($productDataInput);
但是我仍然无法公开该服务
sudo kubectl -n kube-system get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
calico-kube-controllers 1/1 1 1 63d
coredns 2/2 2 2 63d
kubernetes-dashboard 1/1 1 1 103m
tiller-deploy 0/1 1 0 63d
如上所述here
答案 2 :(得分:0)
因此,为了重现并展示其工作原理-我在GKE上产生了新的新簇。
让我们看看在应用仪表板Yaml之后拥有什么:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
kubectl get deployment kubernetes-dashboard -n kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kubernetes-dashboard 1 1 1 1 3m22s
kubectl get services kubernetes-dashboard -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard ClusterIP 10.0.6.26 <none> 443/TCP 5m1
kubectl describe service kubernetes-dashboard -n kube-system
Name: kubernetes-dashboard
Namespace: kube-system
Labels: k8s-app=kubernetes-dashboard
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard"...
Selector: k8s-app=kubernetes-dashboard
Type: ClusterIP
IP: 10.0.6.26
Port: <unset> 443/TCP
TargetPort: 8443/TCP
Endpoints: 10.40.1.5:8443
Session Affinity: None
Events: <none>
在此deployment期间:
1)已创建kubernetes-dashboard
部署。请注意,它是使用k8s-app=kubernetes-dashboard
label创建的。
2)kubernetes-dashboard
service已创建并使用k8s-app=kubernetes-dashboard
[选择器](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。
基本上,当您收到这样的错误时-这是预期的。因为kubectl expose deployment kubernetes-dashboard -n kube-system
试图使用kubernetes-dashboard
名称创建新服务。
只是为了使用它-您可以轻松地公开相同内容,但可以使用其他服务名称,例如:
kubectl expose deployment kubernetes-dashboard -n kube-system --name kube-dashboard-service2
service/kube-dashboard-service2 exposed
请注意,默认kubernetes-dashboard
服务是使用ClusterIP
类型创建的-因此您现在就可以访问它
1)集群
2)从本地计算机使用kubectl代理
$ kubectl proxy
In browser: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
如果要公开相同内容,可以使用: 1)Ingress
2)Nodeport service type
用2个字词:在clusterIP --> Nodeport
期间编辑kubectl -n kube-system edit service kubernetes-dashboard
类型,然后使用https://[node_ip]:[port]
更多详细的文章在这里:How To Access Kubernetes Dashboard Externally
3)Loadbalancer service type。这是特定于云的功能,因此仅适用于云提供商
来自外部负载均衡器的流量定向到后端 豆荚。云提供商决定如何进行负载均衡。
某些云提供商允许您指定loadBalancerIP。在那些 在这种情况下,负载均衡器是根据用户指定的 loadBalancerIP。如果未指定loadBalancerIP字段,则 用临时IP地址设置loadBalancer。如果您指定一个 loadBalancerIP,但您的云提供商不支持该功能, 您设置的loadbalancerIP字段将被忽略。