2017-08-07 60 views
0

我用下面的腳本部署到kubernetes集羣新的圖像映像部署後診斷服務:如何在kubernetes

#!/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/ 

我得到一個非respons ive服務 - 無法連接到外部IP。


繼承人是與上次更改一些調試信息(WordPress的圖像):

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 

如何診斷此問題?我想我需要確定當前在集羣/ pod上運行的確切的docker鏡像。

+0

要比較泊塢窗圖像,您可以在節點上運行'docker images'命令並比較圖像ID。解決安裝busybox映像並獲取終端會話的問題,嘗試使用pod訪問wordpress服務以使pod無法啓動。 – sfgroups

回答

0

kubectl get pods

請注意pod的名稱。

然後exec的成莢: kubectl exec -c wordpress -it wordpress-915256023-g68cr -- bash

當時我能夠確定該容器被放置在端口9000聽(通過運行netstat -l)。這讓我意識到這不是HTTP服務器,而是PHP-FPM(所以其他形式的服務器)。