小编use*_*592的帖子

Kubernetes?k8s 如何制作服务 url?

我正在学习k8s。我的问题是如何让k8s像minikube命令“minikube get service xxx --url”那样获取服务url呢?为什么我问是因为当 pod 关闭并再次启动/创建/启动时,不需要通过访问服务 url 来更改 url。当我将 pod 部署为 NodePort 时,我可以使用主机 IP 和端口访问 pod,但是如果重新启动/再次创建它,端口会发生变化。

我的情况如下图所示:我有

one master(172.16.100.91) and 
one node(hostname node3, 172.16.100.96) 
Run Code Online (Sandbox Code Playgroud)

我创建如下 pod 和服务,hellocomm 部署为 NodePort,helloext 部署为 ClusterIP。hellocomm 和 helloext 都是 spring boot hello world 应用程序。

docker build -t jshenmaster2/hellocomm:0.0.2 .
kubectl run hellocomm --image=jshenmaster2/hellocomm:0.0.2 --port=8080
kubectl expose deployment hellocomm --type NodePort

docker build -t jshenmaster2/helloext:0.0.1 .
kubectl run helloext --image=jshenmaster2/helloext:0.0.1 --port=8080
kubectl expose deployment helloext --type ClusterIP


[root@master2 shell]# kubectl get service -o wide
NAME …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress

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

k8s Prometheus:pod 有未绑定的 PersistentVolumeClaims

我在我的 win10 机器的两个虚拟机(centos 7.4)中安装了 kube1.10.3。我使用 git clone 来获取 prometheus yaml 文件。

git clone https://github.com/kubernetes/kubernetes
Run Code Online (Sandbox Code Playgroud)

然后我输入 kubernetes/cluster/addons/prometheus 并按照以下顺序创建 pod:

alertmanager-configmap.yaml
alertmanager-pvc.yaml
alertmanager-deployment.yaml
alertmanager-service.yaml

kube-state-metrics-rbac.yaml
kube-state-metrics-deployment.yaml
kube-state-metrics-service.yaml

node-exporter-ds.yml
node-exporter-service.yaml

prometheus-configmap.yaml
prometheus-rbac.yaml
prometheus-statefulset.yaml
prometheus-service.yaml
Run Code Online (Sandbox Code Playgroud)

但是 Prometheus 和 alertmanage 处于待处理状态:

kube-system   alertmanager-6bd9584b85-j4h5m              0/2       Pending   0          9m
kube-system   calico-etcd-pnwtr                          1/1       Running   0          16m
kube-system   calico-kube-controllers-5d74847676-mjq4j   1/1       Running   0          16m
kube-system   calico-node-59xfk                          2/2       Running   1          16m
kube-system   calico-node-rqsh5                          2/2       Running   1          16m
kube-system   coredns-7997f8864c-ckhsq                   1/1       Running   0          16m
kube-system   coredns-7997f8864c-jjtvq                   1/1       Running   0          16m
kube-system   etcd-master16g …
Run Code Online (Sandbox Code Playgroud)

kubernetes prometheus

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

conda.yaml 文件:通道是什么意思,如果依赖项已经存在,为什么还需要 pip?

我正在研究 MLFlow,它使用 conda 来帮助设置环境和依赖项。在下面的 conda.yaml 文件 /1/ 中,我有三个问题:

  1. 渠道是什么意思?为什么需要蟒蛇?什么是默认频道?

  2. 在依赖部分,有pip,pip是包管理工具。如果有dependencies 关键字,为什么又需要pip?pip 是否安装依赖项的依赖项。

  3. name:flower_classifier,是否表示环境名称是flower-classifier?

/1/

name: flower_classifier
channels:
  - defaults
  - anaconda
dependencies:
  - python==3.6
  - numpy==1.14.2
  - keras==2.2.4
  - pandas
  - pip:
    - tensorflow-gpu==1.10.0
    - mlflow
    - click==6.7
    - scikit-learn
    - pillow
Run Code Online (Sandbox Code Playgroud)

conda

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

单身和表演

嗨:我有一个多线程Java程序.有很多单身人士.我想知道单例是否会降低多线程程序的性能,尤其是吞吐量.一些Singleton只是一个对象,一些singleton是concurrentHashmap和/或atomicinteger.

java performance

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

信号量同步wait()和notify()

我有下面的代码:这是为了获得信号量的知识.代码是线程A首先等待自b.wait()(使调用线程休眠),然后得到通知,为什么代码在这里同步?如果不是,则会出现IllegalMontiorXXXXXXXXX异常.

public class ThreadA {
   public static void main(String[] args){
     ThreadB b = new ThreadB();
     b.start();

     synchronized(b){
        try{
            System.out.println("Waiting for b to complete...");
            b.wait();
        }catch(InterruptedException e){
            e.printStackTrace();
        }

        System.out.println("Total is: " + b.total);
    }
  }
}



class ThreadB extends Thread{
    int total;
    @Override
    public void run(){
        synchronized(this){
            for(int i=0; i<100 ; i++){
                total += i;
            }
            notify();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:答案是同步让当前线程拥有信号量.notify()文档解释了这一点.

java multithreading semaphore

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

JVM 性能调优:年轻副本与老年代 gc

您好:我有一个多线程 Java 应用程序。有很多临时对象。
-XX:MaxTenuringThreshold=1, 我们在启动 JVM 时放置了上面的参数。这意味着所有对象都将在 gc 期间存活一次,然后将其提升到老年代。我们-XX:MaxTenuringThreshold=10可以举个例子,这样对象会在 10 次 gc 后提升到 old JVM old generation。但这是否会在年轻的 gc 期间导致不必要的复制操作(因为对象被复制“从 'eden' 到 'from'、从 'from' 到 'to'、'from'、'to' 是两个幸存者缓冲区)?

这些问题也可能意味着如果 a) 年轻代有多次复制,老年代 gc 少,b) 老年代垃圾收集时间长,但年轻代副本很少,哪个更好的性能更好?

java performance garbage-collection jvm permanent-generation

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

JavaFX - 控制和并发

我有一个示例Hello World JavaFx.我正在使用Eclipse和eFxclipse插件.我的Eclipse是kepler,它是Eclipse 4.3.2版本,Java servion是Jdk1.7-045.

我尝试添加的是很少的并发代码,我只想更新示例中的按钮文本.这个后端任务是否可以与前期UI控件交互,例如按钮,场景?如果没有,我怎样才能制作定制的后端任务,然后与UI控件进行交互?

提前致谢

package com.juhani.fx.exer;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;


public class HelloWorld extends Application{

    private static final short COREPOOLSIZE=2;
    private static final short MAXIMUMPOOLSIZE=2; 
    private static final int WORKQUEUECAPACITY=100;
    private static Logger log = LogManager.getLogger(
            HelloWorld.class.getName());

    private ExecutorService executors = new             ThreadPoolExecutor(COREPOOLSIZE,MAXIMUMPOOLSIZE,20,TimeUnit.MINUTES,new ArrayBlockingQueue<Runnable>(WORKQUEUECAPACITY));



    public static void main(String[] args) {
       LogMessage logMessage = …
Run Code Online (Sandbox Code Playgroud)

javafx javafx-2

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

Apache Storm 可靠性超时配置

我在 Linux Ubuntu 中部署了一个 nodejs->kafka>storm->Mongo。原本一切正常。然后我更改了 Storm worker 中的方法,这使得 Storm worker 处理消息非常慢,每条消息大约 1 分钟,我注意到消息从 Storm 中一次又一次地发送。我恢复到原来的方法,一切都很好。(原始方法处理时间为每条消息 90 毫秒)。

我猜这是 Storm 的可靠性发挥作用。当消息未被确认或超时时,它再次发送消息。

如果我的猜测是对的,如何配置此超时?

如果我的猜测是错误的,为什么同一条消息会发送两次或三次?

apache-storm

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

logstash grok,用json过滤器解析一行

我正在使用 ELK(弹性搜索、kibana、logstash、filebeat)来收集日志。我有一个带有以下几行的日志文件,每一行都有一个 json,我的目标是使用 Logstash Grok 取出 json 中的键/值对并将其转发到弹性搜索。

2018-03-28 13:23:01  charge:{"oldbalance":5000,"managefee":0,"afterbalance":"5001","cardid":"123456789","txamt":1}

2018-03-28 13:23:01  manage:{"cuurentValue":5000,"payment":0,"newbalance":"5001","posid":"123456789","something":"new2","additionalFields":1}
Run Code Online (Sandbox Code Playgroud)

我正在使用Grok Debugger制作正则表达式模式并查看结果。我目前的正则表达式是:

%{TIMESTAMP_ISO8601} %{SPACE} %{WORD:$:data}:{%{QUOTEDSTRING:key1}:%{BASE10NUM:value1}[,}]%{QUOTEDSTRING:key2}:%{BASE10NUM:value2}[,}]%{QUOTEDSTRING:key3}:%{QUOTEDSTRING:value3}[,}]%{QUOTEDSTRING:key4}:%{QUOTEDSTRING:value4}[,}]%{QUOTEDSTRING:key5}:%{BASE10NUM:value5}[,}]
Run Code Online (Sandbox Code Playgroud)

正如人们所见,它是硬编码的,因为真实日志中 json 中的键可以是任何单词,值可以是整数、双精度或字符串,而且键的长度各不相同。所以我的解决方案是不可接受的。我的解决结果如下图,仅供参考。我正在使用Grok 模式

我的问题是,尝试在 json 中提取键是否明智,因为弹性搜索也使用 json?其次,如果我尝试从 json 中取出键/值,是否有正确、简洁的 Grok 模式?

解析上述行中的第一行时,Grok 模式的当前结果给出以下输出。

{
  "TIMESTAMP_ISO8601": [
    [
      "2018-03-28 13:23:01"
    ]
  ],
  "YEAR": [
    [
      "2018"
    ]
  ],
  "MONTHNUM": [
    [
      "03"
    ]
  ],
  "MONTHDAY": [
    [
      "28"
    ]
  ],
  "HOUR": [
    [
      "13",
      null
    ]
  ],
  "MINUTE": [
    [
      "23",
      null
    ]
  ],
  "SECOND": [
    [ …
Run Code Online (Sandbox Code Playgroud)

logstash logstash-grok elastic-stack

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

Python,检查数组元素是否全部相同

我有一个数组,比如说[4 4 4 4 4],这里的长度是5。在实际情况下可能是这样300。如何检查所有元素是否相同,例如在本例中全部都是4。如果所有元素具有相同的值,则函数返回true,否则返回false。元素只能是整数,值可以是其中之一:0,1,2,3,4

我可以在 Python 中使用循环,如下所示。但我正在寻找一种简洁的方法或简单的方法来做到这一点,比如说一行。

x= [4,4,4,4]
temp = x[0]

for ele in x:
    if(temp != ele):
        false
     true
Run Code Online (Sandbox Code Playgroud)

python

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