我有带Docker的Windows 10 Pro,适用于Windows v18.06.1-ce,且已启用kubernetes。
我使用kubectl create -f
创建了rc.yml:
apiVersion: v1
kind: ReplicationController
metadata:
name: hello-rc
spec:
replicas: 9
selector:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: hello-ctr
image: nigelpoulton/pluralsight-docker-ci:latest
ports:
- containerPort: 8080
svc.yml
apiVersion: v1
kind: Service
metadata:
name: hello-svc
labels:
app: hello-world
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
protocol: TCP
selector:
app: hello-world
我希望localhost:8080可以正常工作,但是不会,10.108.96.27:8080也不可以
> kubectl describe service/hello-svc
Name: hello-svc
Namespace: default
Labels: app=hello-world
Annotations: <none>
Selector: app=hello-world
Type: NodePort
IP: 10.108.96.27
LoadBalancer Ingress: localhost
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 30001/TCP
Endpoints: 10.1.0.10:8080,10.1.0.11:8080,10.1.0.12:8080 + 6 more...
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
答案 0 :(得分:1)
有两种方法可以从Kubernetes集群向外界公开服务:
类型: LoadBalancer 。但是,它仅适用于云提供商。
类型: NodePort 。如您在这种情况下使用的。现在,要访问Kubernetes集群中的服务,您需要使用节点之一的IP地址和字段nodePort
中的端口
例如,12.34.56.78:30001
有关更多信息,请浏览official documentation。