[k8s]如何处理dockerfile无expose情况下在k8s里暴漏访问


做镜像时候忘记expose端口了, 或者要做一个通用的镜像, expose端口不固定, 又要在k8s环境里跑并暴漏服务访问,怎么破?

实际上: yaml的
    ports:
    - containerPort: 8000

相当于 docker run --expose

构建无expose的镜像

[root@n1 pyhttp]# cat Dockerfile 
from ubuntu:14.04
workdir /
#expose 8000
entrypoint ["python3", "-m", "http.server"]

docker build -t pyhttp .

启动后访问

docker run --expose 8000 -p 8000:8000 -itd pyhttp

pyhttp在k8s环境中跑

[root@n1 pyhttp]# cat pyhttp.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pyhttp
  labels:
    name: pyhttp
spec:
  containers:
  - name: pyhttp
    image: pyhttp
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8000

[root@n1 pyhttp]# cat pyhttp-svc.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pyhttp
  labels:
    name: pyhttp
spec:
  containers:
  - name: pyhttp
    image: pyhttp
    imagePullPolicy: IfNotPresent

观察pyhttp的pod和svc状态如下

启动一个curl镜像验证svc

kubectl run -it --rm --restart=Never curl --image=appropriate/curl sh


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM