标签: kubernetes-pod

创建副本集时出错 - io.k8s.api.apps.v1.ReplicaSet 中未知的未知字段“replicas”

团队,我正在尝试创建一个副本集,但出现错误:

验证数据时出错:

[ValidationError(ReplicaSet):io.k8s.api.apps.v1.ReplicaSet 中未知字段“replicas”,ValidationError(ReplicaSet):io.k8s.api.apps.v1.ReplicaSet 中未知字段“selector”,ValidationError(ReplicaSet) .spec): io.k8s.api.apps.v1.ReplicaSetSpec 中缺少必填字段“选择器”];如果您选择忽略这些错误,请使用 --validate=false 关闭验证

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: test-pod-10sec-via-rc1
  labels:
    app: pod-label
spec:
  template:
  metadata:
  name: test-pod-10sec-via-rc1
  labels:
      app: feature-pod-label
  namespace: test-space
spec:
  containers:
  - name: main
    image: ubuntu:latest
    command: ["bash"]
    args: ["-xc", "sleep 10"]
    volumeMounts:
    - name: in-0
      mountPath: /in/0
      readOnly: true
  volumes:
  - name: in-0
    persistentVolumeClaim:
      claimName: 123-123-123
      readOnly: true
  nodeSelector:
    kubernetes.io/hostname: node1
replicas: 1
selector:
  matchLabels:
    app: feature-pod-label
Run Code Online (Sandbox Code Playgroud)

replicaset kubernetes kubernetes-pod

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

Helm 图表无限期地停留在 PodInitializing 状态

我在家里的 Ubuntu 服务器上运行microk8s集群,并将其连接到本地 NAS 服务器以进行持久存储。我一直用它作为学习 Kubernetes 的个人试验场,但我似乎在每一步都会遇到一个又一个问题。

我已经安装了NFS Client Provisioner Helm 图表,我已确认该图表可以正常工作 - 它将在我的 NAS 服务器上动态配置 PVC。我后来能够成功安装Postgres Helm 图表,至少我是这么认为的。创建后,我可以使用 SQL 客户端连接到它,感觉很好。

直到几天后,我注意到 Pod 显示 0/1 容器已就绪。有趣的是,nfs-client-provisioner pod 仍然显示 1/1。长话短说:我已经删除/清除了 Postgres Helm 图表,并尝试重新安装它,但现在它不再起作用。事实上,我尝试部署的任何新内容都不起作用。一切看起来好像都能正常工作,但随后就永远挂在 Init 或 ContainerCreating 上。

特别是对于 Postgres,我运行的命令是这样的:

helm install --name postgres stable/postgresql -f postgres.yaml
Run Code Online (Sandbox Code Playgroud)

我的postgres.yaml文件如下所示:

persistence:
    storageClass: nfs-client
    accessMode: ReadWriteMany
    size: 2Gi
Run Code Online (Sandbox Code Playgroud)

但如果我这样做,kubectl get pods我仍然会看到这个:

NAME                    READY  STATUS    RESTARTS  AGE
nfs-client-provisioner  1/1    Running   1         11d
postgres-postgresql-0   0/1    Init:0/1  0         3h51m
Run Code Online (Sandbox Code Playgroud)

如果我执行 …

kubernetes kubernetes-helm kubernetes-deployment kubernetes-pod kubernetes-service

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

如何自动缩放舵图 statefulsets

我已经使用 helm chart 安装了 rabbitmq 集群。Rabbitmq 使用 statefulsets 那么有什么方法可以自动缩放吗?

还有一个问题,如何使用 PVC 自动扩展 (HPA) 部署?

docker kubernetes docker-compose kubernetes-helm kubernetes-pod

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

如何修复未清除的 Liquibase 数据库锁

我在项目中使用 liquibase,到目前为止它运行良好。
我添加了一个新的变更集,它在本地运行良好,一旦部署,容器的状态就会挂起以下语句: "liquibase: Waiting for changelog lock..."

未设置部署的限制资源。
表“databasechangeloglock”的更新不起作用,导致 pod 一直锁定它。
我该如何解决这个问题?

liquibase kubernetes kubernetes-pod

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

即使在发送 SIGTERM 之后,Kubernetes 也会向 Pod 发送流量

我有一个配置了优雅关机的 SpringBoot 项目。部署在 k8s 上,1.12.7这里是日志,

2019-07-20 10:23:16.180 INFO [service,,,] 1 --- [ Thread-7] com.jay.util.GracefulShutdown : Received shutdown event
2019-07-20 10:23:16.180 INFO [service,,,] 1 --- [ Thread-7] com.jay.util.GracefulShutdown : Waiting for 30s to finish
2019-07-20 10:23:16.273 INFO [service,fd964ebaa631a860,75a07c123397e4ff,false] 1 --- [io-8080-exec-10] com.jay.resource.ProductResource : GET /products?id=59
2019-07-20 10:23:16.374 INFO [service,9a569ecd8c448e98,00bc11ef2776d7fb,false] 1 --- [nio-8080-exec-1] com.jay.resource.ProductResource : GET /products?id=68
...
2019-07-20 10:23:33.711 INFO [service,1532d6298acce718,08cfb8085553b02e,false] 1 --- [nio-8080-exec-9] com.jay.resource.ProductResource : GET /products?id=209
2019-07-20 10:23:46.181 INFO [service,,,] 1 --- [ Thread-7] com.jay.util.GracefulShutdown : Resumed …
Run Code Online (Sandbox Code Playgroud)

deployment spring-boot kubernetes kubernetes-pod

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

在 Kubernetes 设置期间保持我的服务器 O/S 的静态 IP 地址

我有一个新手 Kubernetes 设置问题,我找不到答案。也许社区朋友可以帮助我。

我的设置

我有一个使用强大的 PC 创建的个人研发实验室,运行:

  • Fedora-30 (外部Host O/S)
  • 多个LXCO/S 容器(作为来宾运行CentOS-8
  • Docker CE在这些LXC来宾容器中嵌套和运行

使用此设置,我能够改变此环境的“个性”以承担各种技术和应用程序开发堆栈。

现在,外部 Host 和 LXC Guest O/S' 在与我的个人(家庭)网络上的任何其他设备相同的子网上都有静态 IP 地址(主要bridged是因为它更容易)。此问题的相关主机和 IP 地址是:

  • Fedora-30 外部主机(PC): 192.168.0.16/24
  • vps10 (CentOS-8)LXC 客人:192.168.0.180/24--k8s00
  • vps11 (CentOS-8)LXC 客人:192.168.0.181/24--k8s01
  • vps12 (CentOS-8)LXC 客人:192.168.0.182/24--k8s02
  • vps13 (CentOS-8)LXC 客人:192.168.0.183/24--k8s03

我想设置一个小型 Kubernetes 集群,k8s00(上图)是主节点,和k8s01,k8s02k8s03 …

docker kubernetes kubernetes-pod

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

如何在使用 kubeadm 部署的 kubernetes 集群中使 pod CIDR 范围更大?

我在添加了 --pod-network-cidr 的情况下部署了我的集群,并使用 calicoctl 创建了新的 ip 池以将 pod 更改为该范围。我遇到的问题正是我需要在 kubernetes 端更改以更改 pod cidr 范围的内容?我是在 API 服务器、控制器管理器和调度程序中进行更改,还是只需要更改特定部分。我尝试只更改控制器管理器,并且在更改 yaml 中的 --cluster-cidr 后,那些控制平面 pod 会进入崩溃循环。

控制器管理器日志中的输出如下?

controllermanager.go:235] 错误启动控制器:未能将 idx [0] 处的 cidr[192.168.0.0/24] 标记为节点已占用::cidr 192.168.0.0/24 超出集群 cidr 10.0.0.0/16 的范围

calico kubernetes project-calico kubernetes-pod

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

Kubernetes 就绪探测失败:拨号 tcp 10.244.0.10:5000:连接:连接被拒绝

我有一个简单的服务和 pod,如下所述,但就绪探测失败,抱怨连接被拒绝

apiVersion: v1
kind: Service
metadata:
  name: keystone-api
spec:
  selector:
    app: keystone
  ports:
    - protocol: TCP
      port: 5000
      targetPort: 5000
      name: public
    - protocol: TCP
      port: 35357
      targetPort: 35357
      name: admin
...
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: keystone
  labels:
    app: keystone
spec:
  replicas: 1
  selector:
    matchLabels:
      app: keystone
  template:
    metadata:
      labels:
        app: keystone
    spec:
      containers:
        - name: keystone
          image: openio/openstack-keystone
          readinessProbe:
            tcpSocket:
              port: 5000
          env:
            - name: OS_IDENTITY_ADMIN_PASSWD
              value: password
            - name: IPADDR
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP …
Run Code Online (Sandbox Code Playgroud)

openstack keystone kubernetes kubernetes-helm kubernetes-pod

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

如何确保我的 cronjob 作业不会在失败时重试?

我有一个在 GKE 上运行并运行 Cucumber JVM 测试的 Kubernetes Cronjob。如果由于断言失败、某些资源不可用等原因导致 Step 失败,Cucumber 会正确地抛出一个异常,导致 Cronjob 作业失败并且 Kubernetes pod 的状态更改为ERROR。这会导致创建一个新的 pod,该 pod 尝试再次运行相同的 Cucumber 测试,但再次失败并再次重试。

我不希望发生任何这些重试。如果 Cronjob 作业失败,我希望它保持失败状态并且根本不重试。基于,我已经尝试将设置backoffLimit: 0restartPolicy: Never结合结合使用concurrencyPolicy: Forbid,但它仍然通过创建新的 pod 并再次运行测试来重试。

我错过了什么?这是我的 Cronjob kube 清单:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: quality-apatha
  namespace: default
  labels:
    app: quality-apatha
spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      backoffLimit: 0
      template:
        spec:
          containers:
            - name: quality-apatha
              image: FOO-IMAGE-PATH
              imagePullPolicy: "Always"
              resources:
                limits: …
Run Code Online (Sandbox Code Playgroud)

cucumber-jvm kubernetes google-kubernetes-engine kubernetes-pod kubernetes-cronjob

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

pod定义中重复的env变量名称,确定最终值的优先规则是什么?

使用 Kubernetes 1.19.3,我使用 3 种不同的方式初始化 env 变量值:

  • env pod 定义中具有显式键/值的字段
  • envFrom使用configMapRefsecretRef

当一个键名重复时,如下例所示,DUPLIK1DUPLIK2用不同的值多次定义。

Kubernetes 用于将最终值分配给变量的优先规则是什么?

# create some test Key/Value configs and Key/Value secrets
kubectl create configmap myconfigmap --from-literal=DUPLIK1=myConfig1 --from-literal=CMKEY1=CMval1 --from-literal=DUPLIK2=FromConfigMap -n mydebugns

kubectl create secret generic mysecret --from-literal=SECRETKEY1=SECval1 --from-literal=SECRETKEY2=SECval2 --from-literal=DUPLIK2=FromSecret -n mydebugns

# create a test pod
cat <<EOF | kubectl apply -n mydebugns -f -
apiVersion: v1
kind: Pod
metadata:
  name: pod1
spec:
  containers:
    - name: container1
      image: busybox
      command: [ …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-pod configmap

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