小编Kam*_*san的帖子

Elasticsearch 7.2.0:尚未发现或选举主节点,选举至少需要 X 个节点

我正在尝试自动化 kubernetes 集群中弹性搜索节点的水平扩展和缩减过程。

最初,我在 Kubernetes 集群上部署了一个 elasticsearch 集群(3 个主节点、3 个数据和 3 个摄取节点)。哪里,cluster.initial_master_nodes是:

cluster.initial_master_nodes:
  - master-a
  - master-b
  - master-c
Run Code Online (Sandbox Code Playgroud)

然后,我进行了缩减操作,将主节点 3 的数量减少到 1 个(意外,但出于测试目的)。虽然这样做,我删除master-cmaster-b节点和重新启动master-a的节点具有以下设置:

cluster.initial_master_nodes:
  - master-a
Run Code Online (Sandbox Code Playgroud)

由于elasticsearch节点(即pods)使用persistant volume,重启节点后,会master-a出现如下日志:

"message": "master not discovered or elected yet, an election requires at least 2 nodes with ids from [TxdOAdryQ8GAeirXQHQL-g, VmtilfRIT6KDVv1R6MHGlw, KAJclUD2SM6rt9PxCGACSA], have discovered [] which is not a quorum; discovery will continue using [] from hosts providers and [{master-a}{VmtilfRIT6KDVv1R6MHGlw}{g29haPBLRha89dZJmclkrg}{10.244.0.95}{10.244.0.95:9300}{ml.machine_memory=12447109120, xpack.installed=true, ml.max_open_jobs=20}] from …
Run Code Online (Sandbox Code Playgroud)

elasticsearch kubernetes kubernetes-operator

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

JAVA 10+ -XX:Kubernetes 容器中的 MaxRAMPercentage 标志

Java 10引入了相应的-XX:{Initial|Min|Max}RAMPercentage标志来配置容器环境中的堆。

我在 k8s 集群中运行 Elasticsearch。Elaticsearch容器具有以下资源配置:

resources:
  limits:
    memory: 512Mi
  requests:
    memory: 256Mi
Run Code Online (Sandbox Code Playgroud)

问题:如果我设置-XX:MaxRAMPercentage为50%,值是多少?

  • 128Mi:所请求内存的 50%?
  • 256Mi: 限制的50%?
  • 变量范围128Mi-256Mi:实时内存的 50%?

java jvm heap-memory elasticsearch kubernetes

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

kubernetes自动缩放错误custome metriccs

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: busy-autoscaler
spec:
   behavior:
     scaleDown:
       stabilizationWindowSeconds: 10
       policies:
       - type: Percent
         value: 50
         periodSeconds: 15
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
     name: busy-worker
   minReplicas: 1
   maxReplicas: 2
   metrics:
   - type: Resource
     resource:
       name: cpu
       target:
         type: Utilization
         averageUtilization: 50

Run Code Online (Sandbox Code Playgroud)

错误:验证“hpa.yml”时出错:验证数据时出错:ValidationError(Horizo​​ntalPodAutoscaler.spec):io.k8s.api.autoscaling.v2beta2.Horizo​​ntalPodAutoscalerSpec 中的未知字段“行为”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

$ kubectl version --short

Client Version: v1.18.0
Server Version: v1.14.9-eks-502bfb
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

Prometheus:计算一段时间内的指标值

我英语说得不太好,但我需要一些建议。我有普罗米修斯 如何计算一段时间内服务的停机次数?这是我的职能

 irate(ALERTS{job="blackbox", alertstate="firing"}[2h])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

prometheus

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

将 kubernetes 部署缩减至 0 并缩减至原始副本集数量

我编写了一个 bash 脚本来获取 kubernetes 集群上的所有部署。我有一个命令可以将所有部署缩放为零。我面临的挑战是,我希望能够遍历所有部署并保存它们的名称和副本数量,以便在缩小后将它们缩放回原始。

我如何做到这一点?这就是我迄今为止所做的。

$ kubectl get deployments
$ kubectl scale deploy -n default  --replicas=0 --all
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine kubectl kubernetes-deployment

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

错误:标志 --allowed-unsafe-sysctls 已被弃用

我正在尝试在节点上执行kubelet --allowed-unsafe-sysctls 'net.core.somaxconn'

但返回Flag --allowed-unsafe-sysctls has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.

我也尝试过使用PodSecurityPolicy,但仍然不起作用

apiVersion: v1
kind: PodSecurityPolicy
metadata:
  name: sysctl-psp
spec:
  sysctls:
    - net.*
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  runAsUser:
    rule: RunAsAny
  fsGroup:
    rule: RunAsAny
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: forbidden sysctl: "net.core.somaxconn" not whitelisted

yaml详细信息:

apiVersion: v1
kind: Pod
metadata:
  name: sysctl-example
spec:
  securityContext:
    sysctls:
      - name: net.core.somaxconn
        value: "65535"
        unsafe: true
  containers:
    - …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubelet

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

我如何等到接收器通道在 golang 中完成它的执行?

我有这个示例代码,我正面临这个同步问题,任何人都可以帮助我如何实现这一点。

package main

import "fmt"

func main() {

baseChan := make(chan int)
go func(bCh chan int){
for {
select{
    case stats, _ := <- bCh:
    fmt.Println("base stats", stats)
}}
}(baseChan)

second := make(chan int)
go func (sCh chan int) {
fmt.Println("second channel")
for {
select {
case stats, _ := <- sCh:
    fmt.Println("seconds stats", stats)
    baseChan <- stats
}
}
}(second)
runLoop(second)
}

func runLoop(second chan int) {
 for i := 0; i < 5; i++ {
fmt.Println("writing i", i) …
Run Code Online (Sandbox Code Playgroud)

go goroutine

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

使用 kubectl port-forward 时未找到 Pod

我想转发端口

kubectl port-forward ...
Run Code Online (Sandbox Code Playgroud)

但为此我需要找出 pod 的名称,我运行命令

kubectl -n main_sp get pods
Run Code Online (Sandbox Code Playgroud)

获取列表:

NAME                              READY   STATUS    RESTARTS   AGE
main-ms-hc-78469b74c-7lfdh         1/1     Running   0          13h
Run Code Online (Sandbox Code Playgroud)

我想

kubectl port-forward main-ms-hc-78469b74c-7lfdh 8080:80
Run Code Online (Sandbox Code Playgroud)

我得到

Error from server (NotFound): pods "main-ms-hc-78469b74c-7lfdh" not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

kubernetes kubectl

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

Goroutine 概念:直接调用 vs 使用函数字面量调用

以下两个代码之间的基本区别是什么?不知何故,在第二个示例demo_process2()中从未被调用,但在第一个示例中工作正常。

    1.
go func() {
    Must(demo_process1())
}()

demo_process2()
Run Code Online (Sandbox Code Playgroud)
    2.
go Must(demo_process1())
demo_process2()
Run Code Online (Sandbox Code Playgroud)

其中Must()

func Must(err error) {
    if err != nil {
        panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

concurrency go goroutine

-3
推荐指数
1
解决办法
119
查看次数