标签: kubernetes-pod

我们如何查看 kubernetes 中缓存的图像?

我使用 kops 作为 kubernetes 部署。

imagepullpolicy我注意到,每当在部署文件中输入具有相同标签号的图像时,如果未设置为,系统就会采用前一个图像always

有什么方法可以查看 kubernetes 环境中容器的所有缓存图像吗?

假设我test:56当前有一个部署中运行的映像并且之前test:1使用test:55过,那么 kubernetes 是否缓存这些映像?如果是,在哪里可以找到这些?

containers docker kubernetes docker-image kubernetes-pod

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

StatefulSets 中并行 podManagementPolicy 相对于 OrderedReady podManagementPolicy 有哪些优缺点?

我最近将 StatefulSet 中的 podManagementPolicy 字段从默认(OrderedReady)更新为 Parallel。

  • 它显着减少了放大和缩小时间。
  • 到目前为止,我还没有看到这一变化的任何缺点,但我担心是否会出现任何可能给我带来问题的情况?

我想知道我是否会遇到任何问题?

cloud kubernetes microservices kubernetes-statefulset kubernetes-pod

11
推荐指数
2
解决办法
8905
查看次数

kubectl - 如何获取至少已重新启动一次的所有 Pod 的列表

kubectl get pods --all-namespaces提供所有 Pod 的列表。该列RESTARTS显示 Pod 的重新启动次数。如何获取至少重启过一次的所有 pod 的列表?谢谢

kubernetes kubectl kubernetes-pod

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

避免kubernetes调度程序在kubernetes集群的单个节点中运行所有pod

我有一个kubernetes集群,有4个节点和一个主节点.我试图在所有节点中运行5 nginx pod.目前,调度程序有时在一台机器上运行所有pod,有时在不同的机器上运行.

如果我的节点发生故障并且我的所有pod都在同一节点中运行会发生什么?我们需要避免这种情况.

如何强制调度程序以循环方式在节点上运行pod,这样如果任何节点出现故障,那么至少在一个节点上应该有NGINX pod处于运行模式.

这可能吗?如果可能,我们如何实现这种情况?

scheduler kubernetes kubernetes-pod

10
推荐指数
4
解决办法
4566
查看次数

即时编辑 Kubernetes Pod

出于调试和测试目的,我希望找到一种最方便的方法来启动 Kubernetes Pod 并即时更改其规范。

使用命令式命令启动部分非常简单。跑步

kubectl run nginx-test --image nginx --restart=Never
Run Code Online (Sandbox Code Playgroud)

给了我我想要的东西:不受 Deployment 或 ReplicaSet 等任何控制器管理的单个 Pod。易于玩耍和需要时清理。

但是,当我尝试使用以下命令编辑规范时

kubectl edit po nginx-test
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

pods "nginx-test" was not valid:
 * spec: Forbidden: pod updates may not change fields other than spec.containers[*].image, spec.initContainers[*].image, spec.activeDeadlineSeconds or spec.tolerations (only additions to existing tolerations)
Run Code Online (Sandbox Code Playgroud)

即只有有限的 Pod 规范集在运行时是可编辑的。

到目前为止找到的选项:

  1. 将 Pod 规范保存到文件中:

    kubectl get po nginx-test -oyaml > nginx-test.yaml
    
    Run Code Online (Sandbox Code Playgroud)

    编辑并重新创建

    kubectl apply -f
    
    Run Code Online (Sandbox Code Playgroud)

    不过,只改变一个字段有点重。

  2. 创建部署而不是单个 Pod,然后编辑spec部署本身的部分。

    缺点是:

    • 需要额外的 API 对象(部署),完成后不要忘记清理它
    • Pod 名称以 的形式自动生成nginx-test-xxxxxxxxx-xxxx …

kubernetes kubectl kubernetes-pod

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

AWS EKS 0/1 节点可用。1 个不足的豆荚

我们正在尝试使用 ECR 将 dot net core API 服务部署到亚马逊 EKS。部署成功,但 Pod 处于挂起状态。以下是我们遵循的详细步骤。

步骤随之而来。1. 创建了一个 docker 镜像 2. 将镜像推送到 ECR。该图像现在也可以在 aws 控制台中看到。// 图像看起来不错,我可以在本地使用我的 docker 运行它。

  1. 创建一个 t2-micro 集群如下 eksctl create cluster --name net-core-prod --version 1.14 --region us-west-2 --nodegroup-name standard-workers --node-type t2.micro --nodes 1 --nodes-min 1 --nodes-max 1 –managed // 集群和节点组创建成功。// IAM 角色也被创建

  2. 使用附加的 json/yaml//net-app.json 部署复制控制器 在此处输入图片说明

  3. 使用附加的 json/yaml //net-app-scv.json 部署服务 在此处输入图片说明
  4. get all 命令返回了这个。//get_all.png 得到所有 POD 始终处于 PENDING 状态。

  5. Pod describe 给出了以下结果 //describe_pod.png 描述豆荚

  6. 我们还尝试向集群 IAM 角色添加策略以包含附加的 ECR 权限。//ECR_policy.json

要点:
1. 我们使用的是 t2-micro 实例集群,因为它是 AWS 免费账户。 …

kubernetes amazon-ecr kubernetes-pod amazon-eks

10
推荐指数
3
解决办法
9523
查看次数

http 请求的 kubernetes/elb 超时是多少?

我有一个java API(接受HTTPS请求_打包成docker镜像,然后使用k8s集群部署在EC2之上。主EC2前面有一个ELB。

我可以向 ELB 发出 curl POST 请求,以便访问该 java API。

有时,即使当我看到 kube 日志时处理已成功,我的curl 请求也会永远等待响应。

对于 40 分钟左右的较大请求,会发生这种情况,25 分钟的请求可以获得正常响应。

您认为超时可能在哪里?我应该查看任何特定的配置参数吗?

客户端 (curl) --> ELB --> k8s --> 运行 java api 镜像的 pod

我认为这与 ELB 相关(我没有设置 IdleTimeout),但文档说默认值为 60 秒,尽管我可以获得 20 分钟请求的响应 "ConnectionSettings": { "IdleTimeout" }

amazon-elb kubernetes kubernetes-pod

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

将 docker-compose 转换为舵图?

我有一个 docker-compose 文件,其中包含我正在使用的安全工具的 2 个图像。我的挑战是将其转换为由 deployment.yaml 和 service.yaml 组成的 helm chart。docker-compose 看起来像这样 -

  version: '3'

  services:

  nginx:
    ports:
      - "80:80"
      - "443:443"
    environment:
      - NG_SERVER_NAME=192.168.1.228
    links:
      - tomcat8
    image: continuumsecurity/iriusrisk-prod:nginx-prod-ssl
    container_name: iriusrisk-nginx
    volumes:
      - "./cert.pem:/etc/nginx/ssl/star_iriusrisk_com.crt"
      - "./key.pem:/etc/nginx/ssl/star_iriusrisk_com.key"

  tomcat8:
    environment:
      - IRIUS_DB_URL=jdbc\:postgresql\://192.168.1.228\:5432/iriusprod?user\=iriusprod&password\=alongandcomplexpassword2523
      - IRIUS_EDITION=saas
      - IRIUS_EXT_URL=http\://192.168.1.228
      - grails_env=production
    image: continuumsecurity/iriusrisk-prod:tomcat8-2
    container_name: iriusrisk-tomcat8
Run Code Online (Sandbox Code Playgroud)

也有一个 postgres 服务器在运行,我可以将其转换为舵图并将其公开给我的 ip (192.168.1.228) 端口 5432。但是对于相互链接的 iriusrisk 和 tomcat 图像,我无法想办法。这是我对两者的部署文件的解决方案。

部署-tomcat.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat
  labels:
    app: {{ .Values.tomcat.app.name }}
spec:
  replicas: {{ .Values.tomcat.replicas }} …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose kubernetes-helm kubernetes-pod helmfile

10
推荐指数
2
解决办法
9256
查看次数

更改默认的 k9s/Kubernetes 上下文

我在 k9s 中设置了 3 个上下文(context1、、context2context3。我知道我可以通过键入来更改 k9s 中的上下文:context,但是如何更改打开 k9s 时加载的默认上下文从context3context1

kubernetes kubernetes-pod azure-aks

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

Kubernetes 仪表板令牌将在一小时后过期。如何长期创建token

我们使用以下命令创建了 kubernetes 仪表板。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

kubectl patch svc -n kubernetes-dashboard kubernetes-dashboard --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'
Run Code Online (Sandbox Code Playgroud)

创建了如下所示的仪表板-adminuser.yaml 文件。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)

创建了 ClusterRoleBinding.yaml 文件,如下所示

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令,最后我们得到了登录仪表板的令牌。

kubectl apply -f dashboard-adminuser.yaml
kubectl apply -f ClusterRoleBinding.yaml
kubectl -n kubernetes-dashboard create token admin-user
Run Code Online (Sandbox Code Playgroud)

但问题是我们生成的令牌在一小时后就过期了。如果仪表板注销,我们将无法再次使用相同的令牌。

那么我们可以创建一个没有到期日或至少 6 个月的代币吗?

创建长期使用令牌的命令/过程是什么?

另一件事是,现在我们可以在外部访问 kubernetes 仪表板,如下所示。

https://服务器 IP 地址:PORT_NUMBER

现在我们想要使用我们的网站 URL …

kubernetes google-kubernetes-engine kubernetes-dashboard kubernetes-pod

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