标签: kubectl

通过 kubectl 获取正在运行的容器的快照

是否可以使用 pod 内运行的容器拍摄图像或快照kubectl

通过docker,可以使用docker commit创建容器映像的命令,我们可以从中生成更多容器。我想了解我们是否可以做类似的事情kubectl

kubernetes kubectl

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

在 kubernetes pod 中运行 bash 脚本

我正在尝试使用以下文件运行外部bashyaml脚本。

该脚本位于该/scripts/run.sh文件夹内。我也已经给出了defaultMode: 0777

这是我得到的错误。

sh: 0: Can't open /scripts/run.sh
Run Code Online (Sandbox Code Playgroud)
apiVersion: v1
data:
  script.sh: |-
    echo "Hello world!"
    kubectl get pods
kind: ConfigMap
metadata:
  name: script-configmap
---
apiVersion: batch/v1
kind: Job
metadata:
  labels:
    app: script-job
  name: script-job
spec:
  backoffLimit: 2
  template:
    spec:
      containers:
        - command:
            - sh
            - /scripts/run.sh
          image: 'bitnami/kubectl:1.12'
          name: script
          volumeMounts:
            - name: script-configmap
              mountPath: /scripts
              subPath: run.sh              
              readOnly: false
      restartPolicy: Never
      volumes:
        - name: script-configmap
          configMap:
            name: script-configmap
            defaultMode: 0777
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl kubernetes-jobs

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

Kubernetes:如何使用补丁更改服务端口

设以下服务:

serivce1.yml
apiVersion: v1
kind: Service
metadata:
  name: service1
spec:
  type: ClusterIP
  ports:
   - port: 90
     name: port0
     targetPort: 40000
  selector:
    app: nginx
Run Code Online (Sandbox Code Playgroud)

我申请如下:kubectl apply -f service1.yml

现在我想更改端口部分。我可以编辑 yml 并再次应用,但我更喜欢使用 patch :

kubectl patch service service1 -p '{"spec":{"ports": [{"port": 80,"name":"anotherportspec"}]}}'
service/service1 patched
Run Code Online (Sandbox Code Playgroud)

但此命令添加一个新端口并保留旧端口:

$ kubectl describe svc service1
Name:              service1
Namespace:         abdelghani
Labels:            <none>
Annotations:       <none>
Selector:          app=nginx
Type:              ClusterIP
IP Families:       <none>
IP:                10.98.186.21
IPs:               <none>
Port:              anotherportspec  80/TCP
TargetPort:        80/TCP
Endpoints:         10.39.0.3:80
Port:              port0  90/TCP
TargetPort:        40000/TCP
Endpoints: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

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

如何删除 Kubernetes 命名空间中的每个 Pod

以这个场景为例:

在此输入图像描述

我想使用命令行自动删除每个正在运行的Pod ,而无需为每个 Pod 键入内容。kubectl delete pod <pod_name> -n <namespace>

linux bash shell kubernetes kubectl

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

使用 kubectl port-forward 时未找到 Pod

我想转发端口

kubectl port-forward ...
Run Code Online (Sandbox Code Playgroud)

但为此我需要找出 pod 的名称,我运行命令

kubectl -n main_sp get pods
Run Code Online (Sandbox Code Playgroud)

获取列表:

NAME                              READY   STATUS    RESTARTS   AGE
main-ms-hc-78469b74c-7lfdh         1/1     Running   0          13h
Run Code Online (Sandbox Code Playgroud)

我想

kubectl port-forward main-ms-hc-78469b74c-7lfdh 8080:80
Run Code Online (Sandbox Code Playgroud)

我得到

Error from server (NotFound): pods "main-ms-hc-78469b74c-7lfdh" not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

kubernetes kubectl

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

kubectl cp 从已完成的 pod 到本地计算机

我想使用 kubectl cp 将文件从已完成的 pod 复制到我的本地主机(本地计算机)。我使用了kubectl cp /:/,但是,它给了我一个错误:无法在已完成的 pod 中执行到容器中;当前阶段是成功错误。有没有办法从已完成的 Pod 中复制文件?它不需要是 kubectl cp。任何帮助表示赞赏!

kubernetes kubectl kubernetes-pod azure-aks

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

如何将 /var/lib/kubelet/pods 下的 guid 映射到实际的 pod

我试图调试一些安装问题,安装日志将我引导到以下路径/var/lib/kubelet/pods,即

/var/lib/kubelet/pods/f6affad1-941d-4df1-a0b7-38e3f2ab99d5/volumes/kubernetes.io~nfs/my-pv-e0dbe341a6fe475c9029fb372e

如何将根目录的guid映射pods到实际运行的pod或容器?

f6affad1-941d-4df1-a0b7-38e3f2ab99d5在上面的例子中)

kubectl我没有看到与or返回的值有任何相关性crictl

kubernetes kubectl kubernetes-pod

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

kubectl apply ingress:未知字段错误

我的入口为:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mongoexpress-ingress
spec:
  rules:
  - host: mylocalmongoexpress.com
    http:
      paths:
      - backend:
          serviceName: mongoexpress-service
          servicePort: 8081
Run Code Online (Sandbox Code Playgroud)

当我运行“kubectl apply -f mongoexpress-ingress.yaml”时,出现错误:

错误:验证“mongoexpress-ingress.yaml”时出错:验证数据时出错:[ValidationError(Ingress.spec.rules[0].http.paths[0].backend):io.k8s.api 中的未知字段“serviceName”。 networking.v1.IngressBackend,ValidationError(Ingress.spec.rules [0] .http.paths [0] .backend):io.k8s.api.networking.v1.IngressBackend中的未知字段“servicePort”,ValidationError(Ingress.spec .rules[0].http.paths[0]): io.k8s.api.networking.v1.HTTPIngressPath] 中缺少必填字段“pathType”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

浏览在线资源,我在 yaml 文件中找不到问题。

那么我在这里缺少什么?

kubernetes kubectl kubernetes-ingress

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

如何正确使用 Ansible 运行 cmd kubectl apply

我正在尝试自动化以下操作:

  1. 应用物理卷
    • kubectl apply -f food-pv.yaml
    • kubectl apply -f bar-pv.yaml
  2. 应用物理卷声明
    • kubectl apply -f foo.yaml
    • kubectl apply -f bar.yaml
  3. 申请服务
    • kubectl apply -f this-service.yaml
    • kubectl apply -f that-nodeport.yaml
  4. 应用部署
    • kubectl apply -f Something.yaml

现在我可以将 cmd 作为 shell 命令运行,但我认为这不是正确的方法。我一直在阅读 Ansible 文档,但我没有看到我需要为此做什么。有没有更好的方法来应用这些 yaml 文件而不使用一系列 shell cmd?

提前致谢

ansible kubernetes kubectl

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

如何列出具有特定环境变量的部署

我很乐意列出具有mongodb环境价值的部署及其阶段状态。有办法这样做吗?

使用此命令,我获得带有特定环境值的部署名称

kubectl get deploy -o=custom-columns="NAME:.metadata.name,SEC:.spec.template.spec.containers[*].env[*].value" | grep mongodb | cut -f 1 -d ' '
Run Code Online (Sandbox Code Playgroud)

输出:

app1
app2
app3
app4
Run Code Online (Sandbox Code Playgroud)

我想要得到的输出:

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
app1                                     1/1     1            1           125d
app2                                     1/1     1            1           248d
app3                                     1/1     1            1           248d
app4                                     1/1     1            1           248d
Run Code Online (Sandbox Code Playgroud)

或者它也可以是 pod。我很感激你的帮助。

谢谢你!

kubernetes kubectl

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