代码之家  ›  专栏  ›  技术社区  ›  Chris Stryczynski

如何在kubernetes上部署映像后诊断服务

  •  0
  • Chris Stryczynski  · 技术社区  · 7 年前

    #!/usr/bin/env bash
    
    set -euo pipefail
    set -x
    
    rootPath=".."
    gcpProjectId="example123"
    gcpRepoHostname="eu.gcr.io"
    imageName="wordpress"
    containerName="wordpress"
    tagNameSuffix=$(date +%s)
    tagNameSuffix="deploy-${tagNameSuffix}"
    tagName="$gcpRepoHostname"/"$gcpProjectId"/"$imageName":$tagNameSuffix
    
    echo "$GCLOUD_API_KEYFILE" | base64 --decode --ignore-garbage > ./gcloud-api-key.json
    gcloud auth activate-service-account --key-file gcloud-api-key.json
    gcloud config set project "$gcpProjectId"
    
    sudo docker build "$rootPath"/wordpress/ -t "$tagName"
    sudo gcloud docker -- push "$tagName"
    kubectl set image deployment/wordpress "$containerName"="$tagName"
    

    奇怪的是,当我修改 wordpress/Dockerfile

    FROM rlesouef/alpine-nginx
    

    如果我将其更改为:

    FROM wordpress:php7.1-fpm-alpine
    
    COPY custom-entrypoint.sh /usr/local/bin/
    

    我得到了一个没有响应的服务-无法连接到外部ip。


    kubectl get pods 显示以下内容:

    NAME                        READY     STATUS    RESTARTS   AGE
    wordpress-702001878-xb0b1   2/2       Running   0          8m
    

    kubectl logs wordpress-702001878-xb0b1 wordpress :

    [07-Aug-2017 15:13:14] NOTICE: fpm is running, pid 1
    [07-Aug-2017 15:13:14] NOTICE: ready to handle connections
    

    如何诊断此问题?我想我需要确定当前在集群/吊舱上运行的确切docker映像。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Chris Stryczynski    7 年前

    kubectl get pods

    注意pod名称。

    然后exec进入pod: kubectl exec -c wordpress -it wordpress-915256023-g68cr -- bash

    然后,我能够确定容器正在侦听端口9000(通过运行 netstat -l