小编OhH*_*ark的帖子

如何在调用 kubectl 的函数上启用自动完成子命令

假设您想节省编写所有kubectl命令的时间:kubectl describe pods以更短的方式:k d p

所以解决方案是添加功能~/.bashrc

k() {
  cmd_kubectl="command kubectl"
  case ${1} in
    g)
      shift
      kubectl_get="${cmd_kubectl} get"
      case ${1} in
        p)
          shift
          ${kubectl_get} pods "$@"
          ;;
        d)
          shift
          ${kubectl_get} deploy "$@"
          ;;
        n)
          shift
          ${kubectl_get} ns "$@"
          ;;
        i)
          shift
          ${kubectl_get} ing "$@"
          ;;
        j)
          shift
          ${kubectl_get} job "$@"
          ;;
        *)
          ${kubectl_get} "$@"
          ;;
      esac
      ;;
    d)
      shift
      kubectl_desc="${cmd_kubectl} describe"
      case ${1} in
        p)
          shift
          ${kubectl_desc} pods "$@"
          ;;
        d)
          shift
          ${kubectl_desc} …
Run Code Online (Sandbox Code Playgroud)

bash autocomplete kubectl

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

使用Vagrant / Ansible启动多节点kubernetes集群无法检测到kubelet文件

我正在按照网站 上的说明使用流浪汉/可使用的语言启动多节点kubernetes集群。不幸的是,我得到以下错误:

TASK [Configure node ip] *******************************************************
fatal: [k8s-master]: FAILED! => {"changed": false, "msg": "Destination /etc/default/kubelet does not exist !", "rc": 257}
Run Code Online (Sandbox Code Playgroud)

Vagrantfile中的相关段落是:

- name: Install Kubernetes binaries
    apt:
      name: "{{ packages }}"
      state: present
      update_cache: yes
    vars:
      packages:
        - kubelet
        - kubeadm
        - kubectl

  - name: Configure node ip
    lineinfile:
      path: /etc/default/kubelet
      line: KUBELET_EXTRA_ARGS=--node-ip={{ node_ip }}
Run Code Online (Sandbox Code Playgroud)

这只是错误的路径吗?那会是哪一个呢?

PS:我也会事先收到警告,指出:

[WARNING]: Could not find aptitude. Using apt-get instead
Run Code Online (Sandbox Code Playgroud)

是否没有安装kubelet软件包,这可能是它找不到文件的原因吗?在这种情况下如何解决?

vagrant ansible kubernetes

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

虚拟机重启后 minikube 仪表板挂起

我按照指南在我的 ubuntu-18.04 虚拟机上安装了一个测试 minikube。它是我的 Windows 计算机上的 virtualbox。所以我使用 sudo minikube start --vm-driver=none 来启动 minikube。然后执行 minikube dashboard ....我可以使用生成的令牌访问http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 。现在一切都很好。

但我需要在周末关闭计算机电源。所以我停止 minikube 并关闭 ubuntu 虚拟机。

sudo minikube stop
sudo shutdown
Run Code Online (Sandbox Code Playgroud)

当我周一回到工作岗位时,我无法访问仪表板 UI WEB, sudo minikube dashboard一直挂起,直到我按 Ctrl+C。 minikube 仪表板挂起,直到我按 Ctrl+C

如何恢复wei ui?或者在关闭虚拟机之前我需要做什么?

kubernetes minikube kubernetes-dashboard

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

kubectl 给出错误:无法连接到服务器:x509:由未知颁发机构签名的证书

Mac 上的 docker 桌面出现错误:

Unable to connect to the server: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)

以下答案没有多大帮助:

我的系统详细信息:

  • 操作系统:macOS Big Sur 版本 11.6

  • Docker 桌面版本:v20.10.12

  • Kubernetes版本:v1.22.5

当我做:

kubectl get pods
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Unable to connect to the server: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)

macos kubernetes docker-desktop

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

Kubernetes javascript 客户端 - 无法按标签选择器进行过滤

例如,我从 Kubernetes 官方 javascript 客户端运行以下函数:

.listNamespacedPod("default", null, "false", "smth=test", null, null, null, null, null, null)
Run Code Online (Sandbox Code Playgroud)

或任何其他功能。

有一个参数称为标签选择器。

现在我想使用以下标签选择器查找 Pod(如 HTTP 请求中):

smth=test
Run Code Online (Sandbox Code Playgroud)

但我无法smth=test作为字符串发送。

如何通过标签选择器进行过滤?

这是我来自 YAML 的元数据:

metadata:
  name: label-demo
  labels:
    smth: test 
    app: nginx
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式运行kubectl

kubectl -n="namespace" get deployments -l=smth=test
Run Code Online (Sandbox Code Playgroud)

所以它只会返回匹配的标签。

javascript kubernetes kube-apiserver

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