小编OhH*_*ark的帖子

无法使用 kubectl cp 命令将数据从 POD 复制到本地

我需要将转储数据从 pod 复制到本地。在我正在尝试但收到错误的命令下面:unexpected EOF

kubectl cp device-database-79fc964c8-q7ncc:tmp /Users/raja
error: unexpected EOF

or

kubectl cp device-database-79fc964c8-q7ncc:tmp/plsql_data/prod.dump /Users/raja/prod.dump
error: unexpected EOF


Run Code Online (Sandbox Code Playgroud)

kubectl版本

kubectl version --client
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"darwin/amd64"}

Run Code Online (Sandbox Code Playgroud)

谁能帮助如何解决这个问题?

谢谢

kubernetes kubectl

36
推荐指数
3
解决办法
4万
查看次数

kuberntes/manifest 更新后 kubelet 将无法启动

这在我们的 K8 集群中是一种奇怪的行为。

当我们尝试部署新版本的应用程序时,我们会得到:

Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "<container-id>" network for pod "application-6647b7cbdb-4tp2v": networkPlugin cni failed to set up pod "application-6647b7cbdb-4tp2v_default" network: Get "https://[10.233.0.1]:443/api/v1/namespaces/default": dial tcp 10.233.0.1:443: connect: connection refused
Run Code Online (Sandbox Code Playgroud)

我使用kubectl get cs并发现controllerscheduler处于Unhealthy状态。

正如这里的描述更新/etc/kubernetes/manifests/kube-scheduler.yaml/etc/kubernetes/manifests/kube-controller-manager.yaml通过评论--port=0

当我检查systemctl status kubelet它正在工作时。

Active: active (running) since Mon 2020-10-26 13:18:46 +0530; 1 years 0 months …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubelet cni

11
推荐指数
1
解决办法
971
查看次数

如何重新加载 nginx 入口控制器

我有一个 Kubernetes 集群(v.1.22),在其中部署了 Nginx 入口控制器。我发现我可以在几种情况下重新加载我的入口:下一个列表描述了需要重新加载的场景:

  • 创建了新的 Ingress 资源。
  • TLS 部分已添加到现有 Ingress。
  • Ingress 注释的更改不仅仅影响上游配置。例如,负载平衡注释不需要重新加载。
  • 从 Ingress 添加/删除路径。
  • Ingress、Service、Secret 被删除。
  • Ingress 中某些缺失的引用对象是可用的,例如服务或秘密。
  • 秘密已更新。

我的入口现在仅使用 HTTP 流量,我想将 TLS 部分添加到现有入口。

所以,我的问题是:我到底应该做什么来重新加载我的入口?

我在文档或其他地方找不到任何信息。任何建议表示赞赏!

kubernetes nginx-ingress

10
推荐指数
1
解决办法
4万
查看次数

k8s集群证书颁发机构应该保密吗?

我有一个 azure aks 集群和一个本地 kubeconfig:

apiVersion: v1
kind: Config
clusters:
- name: my-cluster
  cluster:
    certificate-authority-data: LS0...0tCg==
    server: https://api-server:443
contexts:
- name: my-context
  context:
    cluster: my-cluster
    namespace: samples
    user: my-context-user
current-context: my-context
users:
- name: my-context-user
  user:
    token: ey...jI
Run Code Online (Sandbox Code Playgroud)

用于连接到集群、列出 Pod 等。

据我了解,kubeconfig 中的令牌保持秘密/私有很重要。但那又怎样呢certificate-authority-data

由于它只是用于验证 API 服务器证书,我猜它具有与公钥相同的状态,并且至少可以对内部团队成员公开。

是否有文件证实这一点?

我在这里这里没有找到任何相关信息。

ca kubernetes

10
推荐指数
1
解决办法
2663
查看次数

错误:无法在 kubectl 设置映像中找到容器

我正在尝试将更新推送到我的 docker 映像的代码库。我在 GCP 上的 kubernetes 上有 docker 镜像,我按照文档here中提到的方式进行操作。我什至将带有 :v2 标签的映像推送到容器注册表,并且该映像也在控制台中可见。但是现在当我尝试运行时:

kubectl set image deployment/clustername myImageName=gcr.io/${PROJECT_ID}/myImageName:v2
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

error: unable to find container myImageName
Run Code Online (Sandbox Code Playgroud)

我知道图像在那里,因为我用

docker build -t gcr.io/${PROJECT_ID}/myImageName:v2 .
Run Code Online (Sandbox Code Playgroud)

我还解决了以下问题:Error from server (NotFound): deployments.extensions 此时此刻我被卡住了。任何人都可以对此有所了解吗?

docker google-cloud-platform kubernetes kubectl

8
推荐指数
2
解决办法
3480
查看次数

kustomize 编辑集图像不适用于 kustomize 多库和公共库

我正在使用这个例子

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pod.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dev\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 production\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 staging\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

并在kustomization.yaml根目录中的文件中:

\n
resources:\n- ./dev\n- ./staging\n- ./production\n
Run Code Online (Sandbox Code Playgroud)\n

我也有图像转换器代码dev, staging, production

\n
images:\n- name: my-app\n  newName: gcr.io/my-platform/my-app\n\n
Run Code Online (Sandbox Code Playgroud)\n

为了构建单个部署清单,我使用:

\n
(cd dev && kustomize edit set image my-app=gcr.io/my-platform/my-app:0.0.2 && kustomize build .)\n
Run Code Online (Sandbox Code Playgroud)\n

这很简单!

\n

要为所有覆盖(开发、暂存、生产)构建部署清单,我使用:

\n
(kustomize edit set image my-app=gcr.io/my-platform/my-app:0.0.2 && kustomize build .)\n
Run Code Online (Sandbox Code Playgroud)\n

它使用kustomization.yaml包含所有资源(开发、暂存、生产)的根目录。

\n

它确实有效,并且最终版本打印在控制台上,但没有图像标签。

\n

看来kusotmize edit …

kubernetes kustomize

8
推荐指数
1
解决办法
2万
查看次数

无法在 Windows Docker Desktop 上使用 Kubernetes 连接到 NodePort 上的服务

首先,这是我的文件夹:

在此输入图像描述

这是我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "PlatformService.dll"]
Run Code Online (Sandbox Code Playgroud)

platforms-depl.yaml(部署文件)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: platforms-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: platformservice
  template:
    metadata:
      labels:
        app: platformservice
    spec:
      containers:
        - name: platformservice
          image: hao14102000/platformservice:latest
Run Code Online (Sandbox Code Playgroud)

platforms-np-srv.yaml(NodePort 服务文件)

apiVersion: v1
kind: Service
metadata:
  name: platformnpservice-srv
spec:
  type: NodePort
  selector:
    app: platformservice
  ports:
    - …
Run Code Online (Sandbox Code Playgroud)

docker kubernetes asp.net-core-webapi docker-desktop .net-5

8
推荐指数
1
解决办法
2532
查看次数

如何获取kubernetes集群的所有默认用户组

例如system:masters\xe3\x80\x81 system:anonymous\xe3\x80\x81 system:unauthenticated

\n

有没有办法让所有不包含外部创建的系统组,只需 system\xef\xbc\x8ckubectl 命令或列表?

\n

我搜索了 Kubernetes 文档,但没有找到列表或获取它的方法。

\n

kubernetes kubectl

8
推荐指数
1
解决办法
4004
查看次数

Nginx 返回 426

NodePort当我使用 Nginx 服务器访问 Istio 网关时curl,我得到了正确的响应,如下所示:

curl -v "http://52.66.195.124:30408/status/200"
*   Trying 52.66.195.124:30408...
* Connected to 52.66.195.124 (52.66.195.124) port 30408 (#0)
> GET /status/200 HTTP/1.1
> Host: 52.66.195.124:30408
> User-Agent: curl/7.76.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< server: istio-envoy
< date: Sat, 18 Sep 2021 04:33:35 GMT
< content-type: text/html; charset=utf-8
< access-control-allow-origin: *
< access-control-allow-credentials: true
< content-length: 0
< x-envoy-upstream-service-time: 2
< 
* Connection #0 to host …
Run Code Online (Sandbox Code Playgroud)

nginx kubernetes istio-gateway

8
推荐指数
1
解决办法
9322
查看次数

使用不同的命令重新启动 Kubernetes 作业或 Pod

我正在寻找一种从命令行快速运行/重新启动作业/Pod 并覆盖要在创建的容器中执行的命令的方法。

对于上下文,我有一个 Kubernetes 作业,它作为部署过程的一部分执行。有时该作业会崩溃,我需要在作业创建的容器内运行某些命令来调试和修复问题(后续作业会成功)。

到目前为止我这样做的方法是:

  • 复制作业的 YAML,保存到文件中
  • 清理 YAML(删除 Kubernetes 管理的字段)
  • command:字段更改为tail -f /dev/null(以便容器保持活动状态)
  • kubectl apply -f job.yaml && kubectl get all && kubectl exec -ti pod/foobar bash
  • 在容器内运行命令
  • kubectl delete job/foobar当我完成时

这是非常乏味的。我正在寻找一种方法来做类似以下的事情

kubectl restart job/foobar --command "tail -f /dev/null"

# or even better
kubectl run job/foobar --exec --interactive bash
Run Code Online (Sandbox Code Playgroud)

我无法使用以下run命令创建 Pod:

kubectl restart job/foobar --command "tail -f /dev/null"

# or even better
kubectl run job/foobar --exec --interactive bash
Run Code Online (Sandbox Code Playgroud)

因为我尝试重新启动的作业具有 …

kubernetes kubectl kubernetes-jobs

8
推荐指数
1
解决办法
3万
查看次数