标签: kubectl

从同一网络中的另一台机器访问 NodePort 服务

我在我的 Mac 上安装了 minikube,并为我的 Nodejs 应用程序创建了部署和服务。我通过使用以下命令获取服务的 URL 来测试一切正常:

minikube service my-nodejs-app --url
Run Code Online (Sandbox Code Playgroud)

然后我在浏览器中运行这个 URL 并得到结果。问题是当我尝试从同一网络内的另一台计算机访问相同的 URL 时,它不起作用。

我的service.yml文件是:

apiVersion: v1
kind: Service
metadata:
  name: my-nodejs-app
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 1337 
    protocol: TCP
    name: app-server
  selector:
    app:  my-nodejs-app  
Run Code Online (Sandbox Code Playgroud)

我尝试使用端口转发将 pod 端口转发到本地主机,它仅在托管集群的同一台机器上工作,并且当我尝试从同一网络上的另一台机器访问时(通过集群所在机器的 IP 地址)已部署)我仍然找不到页面。

kubernetes kubectl minikube

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

k8s:服务不变但未列出

我正在尝试创建服务kubernetes,但尽管没有打印错误,但我无法列出该服务;

本地工作minikube

*$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   4h
/home/pkara/Workspace/gitlab/my-minikube
*$ kubectl apply -f mydb.yaml 
service/mydatabase unchanged
/home/pkara/Workspace/gitlab/my-minikube
*$ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   4h
Run Code Online (Sandbox Code Playgroud)

这是使用的清单:

---

apiVersion: v1
kind: Service
metadata:
  name: mydatabase
  namespace: esa-local-dev
  labels:
    app: mydatabase
spec:
  ports:
  - name: mydatabase-port
    port: 3306
    targetPort: 3306
  selector:
    app: mydatabase
  clusterIP: None

---
apiVersion: apps/v1
kind: Deployment
metadata: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl minikube

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

将资源的任何更改恢复到 kubectl.kubernetes.io/last-applied-configuration

是否有任何命令可以恢复到资源上以前的配置?

例如,如果我以声明方式创建了服务类资源,然后手动更改端口,如何丢弃实时更改,以便重新应用创建资源的原始定义?

是否有对以前应用的配置的任何跟踪?如果我们可以说:将我的服务重新配置为当前的应用配置 - 2 版本,那就更好了。

编辑:我知道部署有推出选项,但我想知道一种明智的机制

kubernetes kubectl

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

如何通过 kubectl 在 google-cluoud-composer 和 Airflow 1.10 上访问 Airflow

我正在使用GCP Composer来管理 GCP 上的 Apache。

对于新项目,我使用新版本的 Composer/Airflow(composer:1.6.1,Airflow:1.10)

要通过 shell 连接气流以检查损坏的 DAG,GCP 文档说明:

  1. 打开 GCP shell

  2. 连接到 GKE 集群

  3. myuser @cloudshell:~ kubectl 获取 pod

  4. myuser @cloudshell:~ kubectl exec -it airflow-worker- 1a2b3c - xyz12 -c airflow-worker -- /bin/bash

这在 Airflow 1.9 上工作正常,但在 Airflow 1.10 上kubectl get pods不显示工作 pod,而且我还没有找到有关如何在 AF 1.10 上通过 kubeclt 访问气流的文档

有人可以帮助我吗?

_myuser_@cloudshell:~ (_Myproject_)$ kubectl get pods 
NAME                                                        READY     STATUS      RESTARTS   AGE
airflow-monitoring-564c8c7dc5-hxb62                         1/1       Running     0          17h
airflow-redis-0                                             1/1       Running     0          17h
airflow-sqlproxy-594dbf87b7-nmtbh                           1/1 …
Run Code Online (Sandbox Code Playgroud)

worker airflow kubectl google-cloud-composer

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

kubectl - 将资源配额值格式化为 json 格式

获取 kubernetes 中资源配额值的一种方法是使用以下命令

>kubectl describe resourcequotas
Name:                   default-quota
Namespace:              my-namespace
Resource                Used     Hard
--------                ----     ----
configmaps              19       100
limits.cpu              13810m   18
limits.memory           25890Mi  36Gi
Run Code Online (Sandbox Code Playgroud)

但问题是这以文本文件格式显示所有值。任何人都知道我如何获得 json 格式!

当然,我可以解析输出并获取单个条目并构造 json。

kubectl describe quota  | grep limits.cpu | awk '{print $2}'
13810m
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一些内置的东西或一些快速的方法来做到这一点。感谢您的帮助。

json kubernetes kubectl

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

如果文件没有更改,如何重新部署(滚动更新)kubernetes 部署

假设我们在deployment.yml中有这个

containers:
  - name: my_container
    imagePullPolicy: Always
    image: my_image:latest
Run Code Online (Sandbox Code Playgroud)

因此,重新部署可能采取以下形式:

kubectl set image deployment/my-deployment my_container=my_image
Run Code Online (Sandbox Code Playgroud)

我从这里偷来的:

/sf/answers/2825796431/

我的问题是 - 这是进行滚动更新的正确方法吗?上述内容是否始终可以确保部署获得新映像?我的deployment.yml可能永远不会改变——它可能my_image:latest永远不变,那么如何进行滚动更新呢?

kubernetes kubectl amazon-eks

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

如何遍历 kubectl 的节点列表,回显每个节点名称?

我想循环遍历kubectl get nodes命令中的节点名称 并在Bash.

bash kubernetes kubectl

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

用于访问所有命名空间的 Kubernetes 服务帐户

我正在尝试从我的另一个 pod 访问所有命名空间和 pod。因此,我创建了 clusterrole、clusterrolebinding 和 service account。我能够访问唯一的客户命名空间资源。但我需要访问所有命名空间资源。是否可以?

apiVersion: v1
kind: ServiceAccount
metadata:
  name: spinupcontainers
  namespace: customer

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: spinupcontainers
  namespace: customer
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/exec"]
    verbs: ["get", "list", "delete", "patch", "create"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: spinupcontainers
  namespace: customer
subjects:
  - kind: ServiceAccount
    name: spinupcontainers
roleRef:
  kind: ClusterRole
  name: spinupcontainers
  apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助解决这个问题吗?

提前致谢

kubernetes kubectl kubernetes-pod

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

JQ,两个查询,在json的不同部分,合并回来

我正在尝试使用 jq 提取 kubeconfig 数据。

kubectl config view --raw -o json | jq ...

有一个这样的json:

{
    "kind": "Config",
    "apiVersion": "v1",
    "preferences": {},
    "clusters": [
        {
            "name": "some-name",
            "cluster": {
                "server": "https://some-url",
                "certificate-authority-data": "some-cert"
            }
        },
      {
          "name": "another-name",
          "cluster": {
              "server": "https://another-url",
              "certificate-authority-data": "another-cert"
          }
      }
    ],
    "users": [
        {
            "name": "some-name",
            "user": {
                "username": "some-user",
                "password": "some-password"
            }
        },
        {
            "name": "another-name",
            "user": {
                "username": "another-user",
                "password": "another-password"
            }
        }
    ],
    "contexts": [],
    "current-context": "some-context"
}
Run Code Online (Sandbox Code Playgroud)

问题 1: 对于给定的名称,“some-name”,我想提取 …

jq kubectl

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

为什么不能将文件从 pod 复制到我的本地

我知道之前问过这个问题,我检查了它们但仍然失败。

Pod 名称:postgresl-7c8b9-qs67z

pod 中的文件:/home/backup/db

所以我想尝试将“db”文件复制到我的本地,我尝试使用下面的命令,但所有这些都给出了相同的错误。

 kubectl cp default/postgresl-7c8b9-qs67z:/home/backup/db C:\Users\myuser\Desktop\mydb1.dmp

 kubectl cp default/postgresl-7c8b9-qs67z:/home/backup/ C:\Users\myuser\Desktop\

 kubectl cp postgresl-7c8b9-qs67z:/home/backup/db C:\Users\myuser\Desktop\mydb1.dmp
Run Code Online (Sandbox Code Playgroud)

错误是:

error: one of src or dest must be a local file specification
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢!

azure kubernetes kubectl

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