kubernetes 1.3.0을 사용하여 kubernetes 환경을 설정하고 동일한 호스트에서 노드와 노드를 실행하면 하나의 RC, 도커가있는 하나의 서비스가있는 Tomcat 웹 응용 프로그램이 실행됩니다. curl 명령으로 내부 네트워크를 통해 서비스에 액세스 할 수 있지만 공개 IP로 인터넷에서 서비스에 액세스하려고하면 실패합니다.외부 네트워크를 통해 kubernetes 서비스에 액세스 할 수 없습니다
RC의 구성은 다음과 같습니다
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 2
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: kubeguide/tomcat-app:v1
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: "mysql"
- name: MYSQL_SERVICE_PORT
value: '3306'
의 서비스 구성은 다음과 같습니다
보시다시피apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
, 서비스 청취 포트는 Kubernetes 서비스에서 듣는 30001 포트, 그것은 될 수 없습니다 인터넷을 통해 액세스 할 수 있지만 동일한 호스트에서 nc -l 30001
명령을 사용하면 인터넷을 통해 액세스 할 수 있으므로 네트워킹 구성이 시스템 계층에서 문제가되지 않습니다.
호스트의 iptables 설정에 대해 모든 연결을 허용하지만 문제는 계속 발생합니다.
왜 kubernetes 서비스로 액세스 할 수 있습니까? 내가 놓친 구성이 있습니까?
감사합니다. 나는 네가 아직 말한 것처럼하지 않는다. 왜냐하면 나는 그것이 kubernetes의 선진 기술이라는 것을 알았 기 때문에, 나는 나의 연구와 함께 그것을 앞으로 시도 할 것이다. 하지만 당신이 nginx proxypass로 말했듯이, 그것도 작동합니다. 응용 프로그램에 액세스 할 수 있습니다. –