我的目标:公开广告连播的(运行角度图像)port
,以便可以从主机的浏览器访问它。
service.yml:
apiVersion: v1
kind: Service
metadata:
name: my-frontend-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 8000
targetPort: 4200
Pod的yml:
apiVersion: v1
kind: Pod
metadata:
name: angular.frontend
labels:
app: MyApp
spec:
containers:
- name: angular-frontend-demo
image: angular-frontend-image
ports:
- name: nodejs-port
containerPort: 4200
奇怪的是,进行kubectl port-forward pod/angular.frontend 8000:4200
可行。但是,我的目的是将其写在service.yml
答案 0 :(得分:2)
使用Nodeport:
apiVersion: v1
kind: Service
metadata:
name: my-frontend-service
spec:
selector:
app: MyApp
type: NodePort
ports:
- protocol: TCP
port: 8000
targetPort: 4200
nodePort: 30001
然后,您可以在群集的任何节点上的nodeport 30001上访问服务。
例如,计算机名称为node01,则可以卷曲http://node01:30001
答案 1 :(得分:1)
您在此处定义的服务的类型为ClusterIP
(因为您尚未在type
中设置spec
)。这意味着该服务仅可用,reachable within the cluster。您可以使用Ingress使它可以从集群外部访问,例如参见this post,其中显示了如何对Minikube执行此操作。