我正在尝试删除/删除我的环境中运行的所有 Pod。当我发出
码头工人
我得到以下输出。这是一个示例屏幕截图。可以看到,都是K8。我想删除所有 Pod/删除它们。
我尝试了以下所有方法,但它们不断出现
sudo kubectl delete --all pods --namespace=default/kube-public #returns "no resources found" for both default and kube-public namespaces
sudo kubectl delete --all pods --namespace=kube-system # shows "pod xxx deleted"
Run Code Online (Sandbox Code Playgroud)
sudo kubectl get deployments # returns no resources found
Run Code Online (Sandbox Code Playgroud)
除了上述之外,我还尝试使用docker stop和docker rm与容器 ID,但它们要么重生。我想把它们全部清除。我想从头开始
我已注销并重新登录多次,但我仍然看到这些项目。
你能帮我删除所有 pod,并且我希望“docker ps”的输出没有任何与 kubernetes 相关的项目,如上所示?
docker kubernetes google-kubernetes-engine kubernetes-helm kubernetes-pod
如何定义不同的 Pod 端口,一个用于应用程序,另一个用于运行状况检查 (readinessProbe)?
如下所示的端口规范是否是使 readinessProbe 检查运行状况检查端口 TCP/9090 的正确方法?我的意思是,readinessProbe 是否会到达端口 9090(当然假设它是由正在运行的容器打开的)?或者是否需要指定任何其他端口(nodePort、targetPort、端口等)?
kind: Deployment
spec:
template:
spec:
containers:
- name: myapp
image: <image>
ports:
- name: myapp-port
containerPort: 8080
protocol: TCP
- name: healthcheck-port
containerPort: 9090
protocol: TCP
readinessProbe:
httpGet:
port: healthcheck-port
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 2
failureThreshold: 2
Run Code Online (Sandbox Code Playgroud) 我是 k8s 的新手,但我知道,作为 k8s 的要求,每个 Pod 都应该可以从任何其他 Pod 访问。然而,这在我的设置中没有发生:我无法从一个 Pod 内 ping 另一个节点中的另一个 Pod。
这是我的设置:
我有一个主节点(sauron)和三个工作节点(gothmog, angmar, khamul)。我已经weave通过以下方式安装了网络:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Run Code Online (Sandbox Code Playgroud)
这是输出kubectl get pods -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
coredns-5644d7b6d9-bd5qn 1/1 Running 1 59d 10.38.0.2 angmar <none> <none>
etcd-sauron 1/1 Running 44 145d 192.168.201.207 sauron <none> <none>
kube-apiserver-sauron 1/1 Running 82 145d 192.168.201.207 …Run Code Online (Sandbox Code Playgroud) 我的命名空间包含多个秘密和 Pod。使用部署规范将机密作为卷选择性地安装在 pod 上。是否可以拒绝将特定机密作为卷安装在某些 Pod 中。我已经测试了 RBAC,它可以防止 pod 通过 api 访问机密。考虑到允许所有机密安装在同一命名空间的 Pod 中存在安全风险,是否有类似的安装机密机制。
当 pod 改变状态时,我还没有成功获取它的实际状态。从我下面的代码来看,它陷入了困境,waiting并且在我的终端中ContainerCreating陷入了无限循环。
for event in watch.stream(func=v1.list_namespaced_pod, namespace=ns, timeout_seconds=120):
response = event['object'].status
pod_data = {
"name": data.container_statuses[0].name,
"status": data.container_statuses[0].state,
"phase": data.phase,
}
if f'{pod_name}' in data[0]['name']:
running = data[0]['status'].running
wait = data[0]['status'].waiting
while wait != None:
print(f"waiting for {pod_name} state to Running...")
print(wait.reason)
time.sleep(10)
if running.started_at != None:
print("State has changed to Running. Pod has been created and started... ' ")
watch.stop()
Run Code Online (Sandbox Code Playgroud)
获取 Pod 当前状态的最佳方法是什么?我有一个复制操作,当状态从 更改Pending为 时会触发该操作Running。
ContainerCreating
ContainerCreating
ContainerCreating
ContainerCreating
ContainerCreating …Run Code Online (Sandbox Code Playgroud) 我有一个小型 Kubernetes 集群,仅包含两个在t3a.microAWS EC2 实例上运行的节点(为了省钱)。
我有一个小型网络应用程序,我试图在这个集群中运行。我有一个Deployment这个应用程序的单曲。此部署已spec.replicas设置为 4。
当我运行此命令时Deployment,我注意到 Kubernetes 在一个节点中调度了 3 个 pod,在另一个节点中调度了 1 个 pod。
是否可以强制 Kubernetes 每个节点最多调度 2 个 pod Deployment?在同一个 Pod 中拥有 3 个实例,这些小型 EC2 实例的内存几乎耗尽。
谢谢!
我正在尝试在具有一个主节点和两个工作节点的 K8s 集群上创建部署。该集群在 3 个 AWS EC2 实例上运行并使用 weave 网络。
[root@master ~]# export kubever=$(kubectl version | base64 | tr -d '\n')
[root@master ~]# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
Run Code Online (Sandbox Code Playgroud)
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-f89759699-7vscl 0/1 ContainerCreating 0 36m
Run Code Online (Sandbox Code Playgroud)
kubectl 描述 pod nginx -n mounika
Name: nginx-f89759699-7vscl
Namespace: mounika
Priority: 0
Node: worker2/172.31.57.238
Start Time: Sun, 31 May 2020 01:58:15 +0000
Labels: app=nginx
pod-template-hash=f89759699
Annotations: <none>
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/nginx-f89759699
Containers:
nginx:
Container …Run Code Online (Sandbox Code Playgroud) 我正在 kubernetes 集群上运行多个 cronjobs,并希望它们在 EDT 时区 America/New_York 上运行。我想知道如何确保我的作业在特定的 EDT 时间运行。目前,所有这些作业都以 UTC 时区运行。
有人建议寻找 kubernetes 控制器并在该特定主机/容器上设置时区。如果有人能阐明的话,我将不胜感激
A。如何找到 kubernetes 管理控制器?b. 如何通过命令行或 yaml 文件在容器上自动设置时区
我有一个具有多个 ServiceAccounts 的环境,并且 pod 可以使用 kubernetes python sdk 访问 Kubernetes api。函数 load_incluster_config() 选择哪个帐户。有什么方法可以指定要选择的帐户吗?我发现我的 pod 总是选择名为 ServiceAccount 的“默认”。
openshift kubernetes kubectl kubernetes-python-client kubernetes-pod
我有兴趣获取名称中包含“test”但使用 json 和 jq 的多个 pod 的日志。第一步是找出包含该特定字符串的名称 - 在我的例子中是“test”:
kubectl get pods -n test -o json | jq '.items[] | select(.metadata.name|test("test"))| .metadata.name'
Run Code Online (Sandbox Code Playgroud)
我在 Stackoverflow 上某人的帮助下得到了这个答案。
现在我想找出获取每个包含“test”名称的 pod 日志的命令。我想要类似以下命令的命令,但不幸的是这种方式不起作用,因为我猜第一个命令会在多行中一次返回所有 pod:
kubectl logs ``kubectl get pods -n test -o json | jq '.items[] | select(.metadata.name|test("test"))| .metadata.name'`` -n test
Run Code Online (Sandbox Code Playgroud)
有什么方法可以通过一些额外的参数以这种方式获取日志以使其工作吗?
谢谢。
kubernetes-pod ×10
kubernetes ×9
amazon-eks ×1
azure-aks ×1
docker ×1
kubectl ×1
loops ×1
openshift ×1
python ×1
rbac ×1
timezone ×1