几个月来一直工作正常,两天前就辞职了。不记得更改.yamls
.
基本上,当我启动时create-react-app
,create-react-app
客户端只是启动、失败并重新启动。
我试过了:
- 在工作时恢复到以前的提交
- 降级/升级
skaffold
- 降级/升级
minikube
- 降级/升级
kubectl
- 测试 Ubuntu 19.10、macOS 10.15.3 和 Windows 10 (WSL2),问题仍然存在
这似乎是一个问题,skaffold
因为create-react-app
以下仍然可以正常工作:
- 和pod 仍然可以正常启动和
api
运行postgres
- 以下工作正常,对我来说,这表明这不是
create-react-app
问题:
cd client
npm install
npm start
- 以下也正常工作,对我来说,这表明这不是
docker
问题:
cd client
docker build -f Dockerfile.dev .
docker run -it -p 3000:3000 <image_id>
- 我认为这不是 Kubernetes 问题。我推送到我的暂存分支,触发暂存 CI/CD 管道,通过构建和部署,它在我的暂存 URL 上正常运行。
这就是我的配置:
# client.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment-dev
spec:
replicas: 1
selector:
matchLabels:
component: client
template:
metadata:
labels:
component: client
spec:
containers:
- name: client
image: client
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service-dev
spec:
type: ClusterIP
selector:
component: client
ports:
- port: 3000
targetPort: 3000
#skaffold.yaml
apiVersion: skaffold/v1beta15
kind: Config
build:
local:
push: false
artifacts:
- image: client
context: client
docker:
dockerfile: Dockerfile.dev
sync:
manual:
- src: "***/*.js"
dest: .
- src: "***/*.jsx"
dest: .
- src: "***/*.json"
dest: .
- src: "***/*.html"
dest: .
- src: "***/*.css"
dest: .
- src: "***/*.scss"
dest: .
deploy:
kubectl:
manifests:
- manifests/dev/client.yaml
# Dockerfile.dev
FROM node:13-alpine
WORKDIR /app
COPY ./package.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
-v DEBUG
日志:
$ skaffold dev -v DEBUG
INFO[0000] starting gRPC server on port 50051
INFO[0000] starting gRPC HTTP server on port 50052
INFO[0000] Skaffold &{Version:v1.6.0-docs ConfigVersion:skaffold/v2beta1 GitVersion: GitCommit:b74e2f94f628b16a866abddc2ba8f05ce0bf956c GitTreeState:clean BuildDate:2020-03-25T00:09:12Z GoVersion:go1.14 Compiler:gc Platform:linux/amd64}
DEBU[0000] config version (skaffold/v1beta15) out of date: upgrading to latest (skaffold/v2beta1)
DEBU[0000] validating yamltags of struct SkaffoldConfig
DEBU[0000] validating yamltags of struct Metadata
DEBU[0000] validating yamltags of struct Pipeline
DEBU[0000] validating yamltags of struct BuildConfig
DEBU[0000] validating yamltags of struct Artifact
DEBU[0000] validating yamltags of struct Sync
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct SyncRule
DEBU[0000] validating yamltags of struct ArtifactType
DEBU[0000] validating yamltags of struct DockerArtifact
DEBU[0000] validating yamltags of struct TagPolicy
DEBU[0000] validating yamltags of struct GitTagger
DEBU[0000] validating yamltags of struct BuildType
DEBU[0000] validating yamltags of struct LocalBuild
DEBU[0000] validating yamltags of struct DeployConfig
DEBU[0000] validating yamltags of struct DeployType
DEBU[0000] validating yamltags of struct KubectlDeploy
DEBU[0000] validating yamltags of struct KubectlFlags
INFO[0000] Using kubectl context: minikube
DEBU[0000] Using builder: local
DEBU[0000] Running command: [minikube docker-env --shell none]
DEBU[0000] Command output: [DOCKER_TLS_VERIFY=1
DOCKER_HOST=tcp://192.168.39.184:2376
DOCKER_CERT_PATH=/home/eoxdev/.minikube/certs
MINIKUBE_ACTIVE_DOCKERD=minikube
]
DEBU[0000] setting Docker user agent to skaffold-v1.6.0-docs
Listing files to watch...
- client
DEBU[0000] Found dependencies for dockerfile: [{package.json /app true} {. /app true}]
DEBU[0000] Skipping excluded path: node_modules
INFO[0000] List generated in 1.684217ms
Generating tags...
- client -> DEBU[0000] Running command: [git describe --tags --always]
DEBU[0000] Command output: [3403aa6
]
DEBU[0000] Running command: [git status . --porcelain]
DEBU[0000] Command output: []
client:3403aa6
INFO[0000] Tags generated in 3.085635ms
Checking cache...
DEBU[0000] Found dependencies for dockerfile: [{package.json /app true} {. /app true}]
DEBU[0000] Skipping excluded path: node_modules
- client: Found Locally
INFO[0000] Cache check complete in 6.098469ms
Tags used in deployment:
- client -> client:1319b715976becb303bd077717e754e52beaef72d44c7b09f5b6835b1afacae2
local images can't be referenced by digest. They are tagged and referenced by a unique ID instead
Starting deploy...
DEBU[0000] Running command: [kubectl version --client -ojson]
DEBU[0000] Command output: [{
"clientVersion": {
"major": "1",
"minor": "18",
"gitVersion": "v1.18.0",
"gitCommit": "9e991415386e4cf155a24b1da15becaa390438d8",
"gitTreeState": "clean",
"buildDate": "2020-03-25T14:58:59Z",
"goVersion": "go1.13.8",
"compiler": "gc",
"platform": "linux/amd64"
}
}
]
DEBU[0000] Running command: [kubectl --context minikube create --dry-run -oyaml -f /home/eoxdev/Projects/issues/skaffold-cra-error/manifests/dev/client.yaml]
DEBU[0000] Command output: [apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment-dev
namespace: default
spec:
replicas: 1
selector:
matchLabels:
component: client
template:
metadata:
labels:
component: client
spec:
containers:
- image: client
name: client
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service-dev
namespace: default
spec:
ports:
- port: 3000
targetPort: 3000
selector:
component: client
type: ClusterIP
], stderr: W0327 08:49:50.543847 16516 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
DEBU[0000] manifests with tagged images: apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment-dev
namespace: default
spec:
replicas: 1
selector:
matchLabels:
component: client
template:
metadata:
labels:
component: client
spec:
containers:
- image: client:1319b715976becb303bd077717e754e52beaef72d44c7b09f5b6835b1afacae2
name: client
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service-dev
namespace: default
spec:
ports:
- port: 3000
targetPort: 3000
selector:
component: client
type: ClusterIP
DEBU[0000] manifests with labels apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/managed-by: skaffold-v1.6.0-docs
skaffold.dev/builder: local
skaffold.dev/cleanup: "true"
skaffold.dev/deployer: kubectl
skaffold.dev/docker-api-version: "1.40"
skaffold.dev/run-id: 2ee04f07-3f07-4e75-bdba-dfac76d18bf0
skaffold.dev/tag-policy: git-commit
skaffold.dev/tail: "true"
name: client-deployment-dev
namespace: default
spec:
replicas: 1
selector:
matchLabels:
component: client
template:
metadata:
labels:
app.kubernetes.io/managed-by: skaffold-v1.6.0-docs
component: client
skaffold.dev/builder: local
skaffold.dev/cleanup: "true"
skaffold.dev/deployer: kubectl
skaffold.dev/docker-api-version: "1.40"
skaffold.dev/run-id: 2ee04f07-3f07-4e75-bdba-dfac76d18bf0
skaffold.dev/tag-policy: git-commit
skaffold.dev/tail: "true"
spec:
containers:
- image: client:1319b715976becb303bd077717e754e52beaef72d44c7b09f5b6835b1afacae2
name: client
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/managed-by: skaffold-v1.6.0-docs
skaffold.dev/builder: local
skaffold.dev/cleanup: "true"
skaffold.dev/deployer: kubectl
skaffold.dev/docker-api-version: "1.40"
skaffold.dev/run-id: 2ee04f07-3f07-4e75-bdba-dfac76d18bf0
skaffold.dev/tag-policy: git-commit
skaffold.dev/tail: "true"
name: client-cluster-ip-service-dev
namespace: default
spec:
ports:
- port: 3000
targetPort: 3000
selector:
component: client
type: ClusterIP
DEBU[0000] 2 manifests to deploy. 2 are updated or new
DEBU[0000] Running command: [kubectl --context minikube apply -f - --force --grace-period=0]
- deployment.apps/client-deployment-dev created
- service/client-cluster-ip-service-dev created
INFO[0000] Deploy complete in 391.276171ms
Waiting for deployments to stabilize
DEBU[0000] getting client config for kubeContext: ``
DEBU[0000] checking status default:deployment/client-deployment-dev
DEBU[0000] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0000] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0001] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
- default:deployment/client-deployment-dev Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
DEBU[0001] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0001] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0001] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0001] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0001] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0001] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0001] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0002] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0002] Command output: [Waiting for deployment "client-deployment-dev" rollout to finish: 0 of 1 updated replicas are available...
]
DEBU[0002] Running command: [kubectl --context minikube rollout status deployment client-deployment-dev --namespace default --watch=false]
DEBU[0002] Command output: [deployment "client-deployment-dev" successfully rolled out
]
- default:deployment/client-deployment-dev is ready.
Deployments stabilized in 1.818029816s
DEBU[0002] getting client config for kubeContext: ``
INFO[0002] Streaming logs from pod: client-deployment-dev-58bdbf5664-fcc7k container: client
DEBU[0002] Running command: [kubectl --context minikube logs --since=3s -f client-deployment-dev-58bdbf5664-fcc7k -c client --namespace default]
[client-deployment-dev-58bdbf5664-fcc7k client]
[client-deployment-dev-58bdbf5664-fcc7k client] > client@0.1.0 start /app
[client-deployment-dev-58bdbf5664-fcc7k client] > react-scripts start
[client-deployment-dev-58bdbf5664-fcc7k client]
DEBU[0002] Found dependencies for dockerfile: [{package.json /app true} {. /app true}]
DEBU[0002] Change detected <nil>
DEBU[0002] Skipping excluded path: node_modules
Watching for changes...
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Project is running at http://172.17.0.8/
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: webpack output is served from
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Content not from webpack is served from /app/public
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: 404s will fallback to /
[client-deployment-dev-58bdbf5664-fcc7k client] Starting the development server...
[client-deployment-dev-58bdbf5664-fcc7k client]
DEBU[0003] Found dependencies for dockerfile: [{package.json /app true} {. /app true}]
DEBU[0003] Skipping excluded path: node_modules
INFO[0004] Streaming logs from pod: client-deployment-dev-58bdbf5664-fcc7k container: client
DEBU[0004] Running command: [kubectl --context minikube logs --since=4s -f client-deployment-dev-58bdbf5664-fcc7k -c client --namespace default]
[client-deployment-dev-58bdbf5664-fcc7k client]
[client-deployment-dev-58bdbf5664-fcc7k client] > client@0.1.0 start /app
[client-deployment-dev-58bdbf5664-fcc7k client] > react-scripts start
[client-deployment-dev-58bdbf5664-fcc7k client]
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Project is running at http://172.17.0.8/
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: webpack output is served from
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Content not from webpack is served from /app/public
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: 404s will fallback to /
[client-deployment-dev-58bdbf5664-fcc7k client] Starting the development server...
[client-deployment-dev-58bdbf5664-fcc7k client]
INFO[0019] Streaming logs from pod: client-deployment-dev-58bdbf5664-fcc7k container: client
DEBU[0019] Running command: [kubectl --context minikube logs --since=20s -f client-deployment-dev-58bdbf5664-fcc7k -c client --namespace default]
[client-deployment-dev-58bdbf5664-fcc7k client]
[client-deployment-dev-58bdbf5664-fcc7k client] > client@0.1.0 start /app
[client-deployment-dev-58bdbf5664-fcc7k client] > react-scripts start
[client-deployment-dev-58bdbf5664-fcc7k client]
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Project is running at http://172.17.0.8/
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: webpack output is served from
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: Content not from webpack is served from /app/public
[client-deployment-dev-58bdbf5664-fcc7k client] ℹ 「wds」: 404s will fallback to /
[client-deployment-dev-58bdbf5664-fcc7k client] Starting the development server...
[client-deployment-dev-58bdbf5664-fcc7k client]
^CCleaning up...
DEBU[0021] Running command: [kubectl --context minikube create --dry-run -oyaml -f /home/eoxdev/Projects/issues/skaffold-cra-error/manifests/dev/client.yaml]
DEBU[0021] Command output: [apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment-dev
namespace: default
spec:
replicas: 1
selector:
matchLabels:
component: client
template:
metadata:
labels:
component: client
spec:
containers:
- image: client
name: client
ports:
- containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service-dev
namespace: default
spec:
ports:
- port: 3000
targetPort: 3000
selector:
component: client
type: ClusterIP
], stderr: W0327 08:50:11.709935 16770 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
DEBU[0021] Running command: [kubectl --context minikube delete --ignore-not-found=true -f -]
- deployment.apps "client-deployment-dev" deleted
- service "client-cluster-ip-service-dev" deleted
INFO[0021] Cleanup complete in 187.851194ms
我在这里有一个测试仓库,如果您愿意,可以尝试:
https://github.com/eox-dev/skaffold-cra-error
希望这是我忽略的事情,但就像我说过的那样,我已经将应用程序恢复到我知道它正在工作并且问题仍然存在的时候。
编辑 4/1v1.6.0-docs
当我在发行说明
中读到这个时,我充满希望:
注意:此版本附带一个新的配置版本
v2beta1
。要升级您的skaffold.yaml
,请使用skaffold fix
. 如果您选择不升级,skaffold
将尽可能自动升级。
但是,仍然有同样的问题。