• [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
    

  • 相关阅读:
    nginx-rtmp-module搭建流媒体服务器
    rabbitmq安装
    opencv+python (3)
    linux命令
    mysql语句概览
    BUUCTF V&N-misc内存取证
    2018 HEBTUCTF 部分misc
    2020 安恒2月月赛 misc
    2018.6.1 铁三数据赛 复现
    2020 i春秋新春战疫公益赛 misc
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8350204.html
Copyright © 2020-2023  润新知