使用 kubectl 命令行,是否可以定义确切的 pod 名称?
我试过
kubectl run $pod-name --image imageX
Run Code Online (Sandbox Code Playgroud)
但是,生成的 pod 名称类似于$pod-name-xx-yyy-nnn. 那么不使用 yaml 文件,我可以使用 kubectl CLI 定义 pod 名称吗?
如何导出单个 kubectl 上下文?
我当前的 kubectl 配置文件定义了多个上下文,尝试将单个上下文与其他上下文隔离将是繁琐的手动过程。
这是支持的吗?
我正在使用kubectl cp命令将本地目录复制到 Kubernetes pod
kubectl cp test $POD:/tmp
Run Code Online (Sandbox Code Playgroud)
它将test目录复制到 Kubernetes pod/tmp目录中。
现在我想覆盖 pod 中的 test 目录。使用kubectl cp命令进行复制时,我没有找到任何覆盖目录的选项。
目前,我正在从 pod 中删除 test 目录,然后复制该目录。
kubectl exec $POD -- sh -c 'rm -rf /tmp/test'
kubectl cp test $POD:/tmp
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果复制时出现任何错误,pod 中的现有目录也将被删除。
如何在不先删除 pod 目录的情况下用本地目录覆盖 pod 目录?
提前致谢。
我知道可以使用以下命令将文件/文件夹复制到容器中:
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir
Run Code Online (Sandbox Code Playgroud)
但是,我希望在 yaml 文件中执行此操作
我该怎么做呢?(假设我正在为容器使用部署)
我在 EKS 上创建了一个 kubernetes 集群。我使用 eksctl create cluster 创建集群。我能够访问一切是伟大的。
但是,我的同事创建了另一个集群,我想知道如何生成/获取 cobeconfigs 以便我可以指向我的同事创建的集群。
嗨,我有一台配置了 kubernetes 的服务器(不使用 minikube),我可以毫无问题地执行 kubectl 命令,例如kubectl get all, kubectl delete pod, kubectl delete apply...
我想知道如何允许我服务器上的另一个用户执行 kubectl 命令,因为如果我更改为另一个用户并尝试执行kubectl get all -s localhost:8443我得到:
Error from server (BadRequest): the server rejected our request for an unknown reason
我已经阅读了Kubernetes 授权文档,但我不确定它是否是我要找的。
我正在尝试 通过 Terraform 的 null_resource创建/应用这个 kubectl .yaml 文件https://github.com/Azure/aad-pod-identity/blob/master/deploy/infra/deployment.yaml到 AKS 以安装 Azure AD Pod 标识。它需要部署 Azure 网关入口控制器。将 Windows 10 与 VS Code 结合使用
主要.tf:
data "template_file" "aad_pod" {
template = "${file("${path.module}/templates/aad_pod.yaml")}"
}
resource "null_resource" "aad_pod_deploy" {
triggers = {
manifest_sha1 = "${sha1("${data.template_file.aad_pod.rendered}")}"
}
provisioner "local-exec" {
command = "kubectl apply -f -<<EOF\n${data.template_file.aad_pod.rendered}\nEOF"
}
}
Run Code Online (Sandbox Code Playgroud)
在 terraform apply 之后我有这个错误:
Error: Error running command 'kubectl apply -f -<<EOF
'cutted listing of yaml file'
EOF': exit status 1. Output: << was unexpected …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 jsonpath 和以下命令获取具有特定标签的 pod 的 IP 地址:
kubectl get pods -l app=validate -n {namespace_name} -o jsonpath={.status.podIP}
但这不会产生任何结果,即使命名空间和标签名称是正确的。另一方面,如果我尝试这样做:
kubectl get pod/pod_name -n {namespace_name} -o jsonpath={.status.podIP}
之后我就可以获得 pod IP 地址。但问题是,由于我试图查询为特定部署创建的所有 pod,我想获取该特定标签下所有 pod 的 Ip 地址。我不确定该命令有什么问题。
我正在尝试使用 Kubernetes 并尝试将映像部署到 k8s 服务中
root@KubernetesMiniKube:/usr/local/bin# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
pod/hello-minikube created
root@KubernetesMiniKube:/usr/local/bin# kubectl get pod
NAME READY STATUS RESTARTS AGE
hello-minikube 1/1 Running 0 16s
root@KubernetesMiniKube:/usr/local/bin# kubectl get deployments
No resources found in default namespace.
Run Code Online (Sandbox Code Playgroud)
为什么我看到没有找到资源,但实际上有一个资源在默认命名空间内运行。
当我们启动主主节点时,该节点会使用 ttl 为工作节点和主节点创建令牌。
根据文档kubeadm token(我也测试过并且它有效),我们可以发出命令并获取新令牌(默认为 ttl 24h):
kubeadm token create --print-join-command
Run Code Online (Sandbox Code Playgroud)
我想弄清楚是否要添加新的平面节点(辅助主节点),如何创建相关令牌?
我尝试传递一些标志,例如:
kubeadm token create --print-join-command --control-plane
Run Code Online (Sandbox Code Playgroud)
但它失败了(当然),因为这个标志不被识别。
我还通过文档发现,我们可以通过配置文件的直接链接来实现,例如 ref kubeadm-join/file 或基于 https 的发现:
kubeadm join --discovery-file path/to/file.conf # (local file)
kubeadm join --discovery-file https://url/file.conf # (remote HTTPS URL)
Run Code Online (Sandbox Code Playgroud)
就我而言,我没有本地 conf 文件或计划使用 url 链接。
有没有其他方法可以使用平面节点而不是工作节点的命令来创建新令牌?
kubectl ×10
kubernetes ×8
amazon-eks ×1
containers ×1
cp ×1
docker ×1
eksctl ×1
jsonpath ×1
overwrite ×1
terraform ×1
token ×1
yaml ×1