标签: kubectl

在kubernetes前面添加认证代理

我在 kubernetes API 前面添加了一个代理,以便使用自制的身份验证系统对用户进行身份验证(以及其他操作)。

在此输入图像描述

我修改了 kube 配置,让 kubectl 访问代理。代理有自己的 kubeconfig 和有效的证书颁发机构数据,因此我不需要任何凭据。

到目前为止,一切正常,这是我本地需要的最低配置:

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy
contexts:
- context:
    cluster: proxy
  name: proxy
current-context: proxy
Run Code Online (Sandbox Code Playgroud)

现在身份验证应该基于令牌,我希望能够将其作为 kubectl 请求标头的一部分进行传递。

我尝试了多种配置,在 kubeconfig 中添加带有令牌的用户,例如

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy

contexts:
- context:
    cluster: proxy
    user: robin
  name: proxy
current-context: proxy

users:
- name: robin
  user:
    token: my-token
Run Code Online (Sandbox Code Playgroud)

或者指定一个身份验证提供者,例如

clusters:
- cluster:
    server: http://localhost:8080
  name: proxy

contexts:
- context:
    cluster: proxy
    user: robin
  name: proxy
current-context: proxy

users:
- …
Run Code Online (Sandbox Code Playgroud)

proxy kubernetes kubectl

0
推荐指数
1
解决办法
1436
查看次数

从主节点终止 kubectl exec 命令不会终止 pod 内运行的命令

kubectl exec -it pod_XXXX -- top我从主节点运行命令。然后通过另一个终端的命令杀死该kubectl exec进程。sudo kill -9 <pid_of_kubectl>

 kubectl exec -it pod_XXXX -- top
 sudo kill -9 <pid_of_kubectl_exec_command>
Run Code Online (Sandbox Code Playgroud)

在 POD 内部,top命令继续运行。当我按crtl+c终止kubectl exec. 这是预期的行为吗?

kubernetes kubectl

0
推荐指数
1
解决办法
1650
查看次数

如何删除 Kubernetes 命名空间上的标签

我像这样标记了一个 Kubernetes 命名空间:

kubectl label namespace kube-system name=kube-system
Run Code Online (Sandbox Code Playgroud)

我如何摆脱这个标签?

kubernetes kubectl

0
推荐指数
1
解决办法
2901
查看次数

从 kubectx 工作流程中删除 kubernetes 集群信息

有没有办法从kubectx中删除 kubernetes 集群上下文?或者只能通过手动从 kubeconfig 中删除它们来完成?

kubernetes kubectl kubeconfig

0
推荐指数
1
解决办法
1378
查看次数

如何解决本地ImagePullBackOff错误?

Net Core 应用程序映像,我正在尝试在本地 kubernetes 中创建部署。我创建了 docker 镜像,如下所示。

docker tag microservicestest:dev microservicestest .
docker build -t microservicestest .
docker run -d -p 8080:80 --name myapp microservicetest
Run Code Online (Sandbox Code Playgroud)

然后我创建了部署,如下所示。

kubectl run microservicestest-deployment --image=microservicestest:latest --port 80 --replicas=3
kubectl expose deployment microservicestest-deployment --type=NodePort
Run Code Online (Sandbox Code Playgroud)

然后当我看到 Kubectl get pods 时,我看到以下错误

在此输入图像描述

以下是我运行 docker images 时的输出

在此输入图像描述

下面是输出

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2020-09-22T04:29:14Z"
  generation: 1
  labels:
    run: microservicestest-deployment
  name: microservicestest-deployment
  namespace: default
  resourceVersion: "17282"
  selfLink: /apis/apps/v1/namespaces/default/deployments/microservicestest-deployment
  uid: bf75410a-d332-4016-9757-50d534114599
spec:
  progressDeadlineSeconds: 600
  replicas: 3
  revisionHistoryLimit: 10 …
Run Code Online (Sandbox Code Playgroud)

containers docker kubernetes kubectl

0
推荐指数
1
解决办法
2459
查看次数

kubectl 不输出日志

我使用以下命令打印所有 Pod:

$ kubectl get pods --all-namespaces
Run Code Online (Sandbox Code Playgroud)

输出是:

NAMESPACE             NAME                                                  READY   STATUS    RESTARTS   AGE  
calico-system         calico-kube-controllers-7487d7f956-hx4fp              1/1     Running   0          88m  
calico-system         calico-node-vn52p                                     1/1     Running   0          88m  
calico-system         calico-typha-7588984c44-m6tsz                         1/1     Running   0          88m  
gitlab-managed-apps   install-ingress                                       0/1     Error     0          14m********  
gitlab-managed-apps   install-prometheus                                    0/1     Error     0          12m  
kube-system           coredns-f9fd979d6-2n2pg                               1/1     Running   0          91m  
kube-system           coredns-f9fd979d6-sq9bl                               1/1     Running   0          91m  
kube-system           etcd-tuoputuo-iamnotstone-server                      1/1     Running   0          91m  
kube-system           kube-apiserver-tuoputuo-iamnotstone-server            1/1     Running   0          91m  
kube-system           kube-controller-manager-tuoputuo-iamnotstone-server   1/1     Running   0          91m  
kube-system           kube-proxy-87jkr                                      1/1     Running   0          91m …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

0
推荐指数
1
解决办法
52
查看次数

Kubernetes CronJob Pod 状态保持正在运行

我想为 PHP 脚本运行 Kubernetes CronJob。作业正常执行,但 POD 的状态仍保持运行状态,几分钟后变为错误。它应该是已完成状态。尝试了不同的选项,但无法解决问题。

这是我的 CronJob Yaml 文件

在此输入图像描述

这是 kubectl get pods 的输出 在此输入图像描述

这是容器内的日志输出。

忽略 PHP 异常。无论例外情况如何,问题都存在。

在此输入图像描述

docker kubernetes kubectl kubernetes-cronjob

0
推荐指数
1
解决办法
2954
查看次数

kubectl exec -it &lt;POD&gt; 获取 sh:无法打开“导出”:没有这样的文件或目录

我尝试执行此命令:

alias kubectl_winpty='winpty kubectl'   ( using winpty due to [bug][1] 
kubectl_winpty exec -it vault-0 -n vault-xxx -- sh export VAULT_CACERT=/vault/userconfig/vault-tls/vault.ca
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

sh: can't open 'export': No such file or directory
command terminated with exit code 2
Run Code Online (Sandbox Code Playgroud)

pod 确实存在并正在运行

$ kubectl get pods vault-0 -n vault-xxx
NAME      READY   STATUS    RESTARTS   AGE
vault-0   0/1     Running   0          17m
Run Code Online (Sandbox Code Playgroud)

sh kubernetes kubectl

0
推荐指数
1
解决办法
286
查看次数

如何使用 Java API 在 Kubernetes 中创建作业

能够使用 CLI 在 Kubernetes 集群中创建作业 ( https://kubernetesbyexample.com/jobs/ )

有没有办法使用 Java API 在集群内创建作业?

kubernetes kubectl azure-aks

0
推荐指数
1
解决办法
6221
查看次数

kubectl exec 返回无例外的错误消息?

我目前正在尝试在我的 kubernetes pod 上执行一个简单的 bash 命令,但似乎遇到了一些没有意义的错误。

如果我执行到 docker 容器并运行命令普通

I have no name!@kafka-0:/tmp$ if [ $(comm -13 <(sort selectedTopics) <(sort topics.sh) | wc -l) -gt 0 ];  then  echo "hello"; fi
Run Code Online (Sandbox Code Playgroud)

我得到 Hello 作为输出。

但是如果从外部执行相同的

kubectl exec --namespace default kafka-0 -c kafka -- bash -c "if [ $(comm -13 </tmp/selectedTopics </tmp/topics.sh| wc -l) -gt 0 ];  then  echo topic does not exist && exit 1; fi"
Run Code Online (Sandbox Code Playgroud)

然后我收到一条错误消息,指出 /tmp/topics.sh: No such file or directory

事件虽然我能够做到这一点

kubectl exec --namespace $namespace kafka-0 -c …
Run Code Online (Sandbox Code Playgroud)

bash kubernetes kubectl

0
推荐指数
1
解决办法
610
查看次数