当通过声明性yaml清单创建简单的hello-world部署,并使用LoadBalancer类型的服务公开它时,一切都成功创建,但是在访问该服务的外部IP时将无法访问。
这是我正在使用的Yaml文件:
apiVersion: v1
kind: Service
metadata:
name: my-test
labels:
app: my-test
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8888
protocol: TCP
name: http
# - port: 443
# targetPort: 8888
# protocol: TCP
# name: https
selector:
app: my-test
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-test
labels:
app: my-test
spec:
replicas: 3
selector:
matchLabels:
app: my-test
template:
metadata:
labels:
app: my-test
spec:
containers:
- name: my-test
image: gcr.io/google-samples/hello- app:2.0
ports:
- containerPort: 8888
我发现,如果使用运行命令创建部署,则可以通过yaml或kubectl暴露命令创建服务。我是K8的新手,所以不确定部署声明有什么问题。
使用以下命令可以正常工作
kubectl run hello-server --image gcr.io/google-samples/hello-app:1.0 --port 8080
然后我运行以下命令公开部署:
kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080
有什么想法吗?