我根据此处的https://ubuntu.com/kubernetes/install#single-node
步骤在我的ubuntu机器上安装了microk8s。然后,我遵循kubernetes官方教程,创建并公开了这样的部署
microk8s.kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
microk8s.kubectl expose deployment/kubernetes-bootcamp --type=NodePort --port 8083
这是我的kubectl get services
输出
akila@ubuntu:~$ microk8s.kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 25h
kubernetes-bootcamp NodePort 10.152.183.11 <none> 8083:31695/TCP 17s
这是我的kubectl get pods
输出
akila@ubuntu:~$ microk8s.kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-6f6656d949-rllgt 1/1 Running 0 51m
但是我无法使用http://localhost:8083
或http://10.152.183.11:31695
从浏览器访问服务
当我尝试http:// localhost:31695时,我收到ERR_CONNECTION_REFUSED。
如何从浏览器访问此“ kubernetes-bootcamp”服务? 我有误会吗?
答案 0 :(得分:2)
IP 10.152.183.11
是CLUSTER-IP
,无法从群集外部(即,无法从浏览器)访问。您应该使用http://localhost:31695
,其中31695
是在主机系统上打开的NodePort
。
gcr.io/google-samples/kubernetes-bootcamp:v1
图像的容器需要在端口8083
上侦听,因为您将其暴露在该端口上。仔细检查,否则会导致ERR_CONNECTION_REFUSED
错误。
如果容器正在监听端口8080
,请使用以下命令公开该端口
microk8s.kubectl expose deployment/kubernetes-bootcamp --type=NodePort --port 8080
答案 1 :(得分:0)
尝试一下
kubectl port-forward <pod_name> <local_port>:<pod_port>
然后访问http://localhost:<local_port>