学习阅读的书籍为《kubernetes权威指南:从Docker到Kubernetes实践全接触》,书中有不少地方讲的比较模糊,故在此做下学习过程中的梳理。
Pod和Service是Kubernetes集群范围内的虚拟概念。集群外的客户端系统无法通过Pod的IP地址或者Service的虚拟IP地址和虚拟端口号访问到它们。
解决措施:
1.将容器应用的端口号映射到物理机上,包括两种方式
通过设置容器级别的hostPort,将容器应用的端口号映射到物理机上。
建立Pod的yaml为:pod-hostport.yaml。需要注意,在yaml中不要使用tab,同时缩进会影响yaml中的数据结构,注意检查缩进。
apiVersion: v1
kind: Pod
metadata:
name: webapp
labels:
app: webapp
spec:
containers:
- name: webapp
image: kubeguide/tomcat-app:v2
ports:
- containerPort: 8080
hostPort: 8081
需要注意!当指定hostPort之后,同一台宿主机将无法启动该容器的第2份副本。后面会有例子进行测试。
kubectl create -f pod-hostport.yaml