From 09032bea6cfd0b9aa55c6b65c62fb7237f642f8a Mon Sep 17 00:00:00 2001 From: SataQiu <1527062125@qq.com> Date: Tue, 10 Dec 2019 15:15:08 +0800 Subject: [PATCH] addons: elasticsearch supports automatically setting the advertise address --- .../fluentd-elasticsearch/es-image/Dockerfile | 2 +- .../fluentd-elasticsearch/es-image/Makefile | 2 +- .../es-image/config/elasticsearch.yml | 1 - .../elasticsearch_logging_discovery.go | 22 +++++++++++++++++++ .../fluentd-elasticsearch/es-statefulset.yaml | 8 +++---- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile b/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile index d143bee9241..bdda4f73d94 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile +++ b/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile @@ -17,7 +17,7 @@ COPY elasticsearch_logging_discovery.go go.mod go.sum / RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -ldflags "-w" -o /elasticsearch_logging_discovery /elasticsearch_logging_discovery.go -FROM docker.elastic.co/elasticsearch/elasticsearch-oss:7.3.2 +FROM docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2 VOLUME ["/data"] EXPOSE 9200 9300 diff --git a/cluster/addons/fluentd-elasticsearch/es-image/Makefile b/cluster/addons/fluentd-elasticsearch/es-image/Makefile index d421ce97f00..ff8d74f8a57 100755 --- a/cluster/addons/fluentd-elasticsearch/es-image/Makefile +++ b/cluster/addons/fluentd-elasticsearch/es-image/Makefile @@ -16,7 +16,7 @@ PREFIX = quay.io/fluentd_elasticsearch IMAGE = elasticsearch -TAG = v7.3.2 +TAG = v7.4.2 build: docker build --tag ${PREFIX}/${IMAGE}:${TAG} . diff --git a/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml b/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml index 7a7401d3236..2ab8f994bcb 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml +++ b/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml @@ -9,4 +9,3 @@ http.port: ${HTTP_PORT} path.data: /data -network.host: 0.0.0.0 diff --git a/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go b/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go index 8ac27dcfb75..b80efd453e6 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go +++ b/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go @@ -19,6 +19,7 @@ package main import ( "flag" "fmt" + "net" "os" "strconv" "strings" @@ -63,11 +64,32 @@ func flattenSubsets(subsets []corev1.EndpointSubset) []string { return ips } +func getAdvertiseAddress() (string, error) { + addrs, err := net.InterfaceAddrs() + if err != nil { + return "", err + } + + for _, addr := range addrs { + if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { + return ipnet.IP.String(), nil + } + } + + return "", fmt.Errorf("no non-loopback address is available") +} + func main() { flag.Parse() klog.Info("Kubernetes Elasticsearch logging discovery") + advertiseAddress, err := getAdvertiseAddress() + if err != nil { + klog.Fatalf("Failed to get valid advertise address: %v", err) + } + fmt.Printf("network.host: \"%s\"\n\n", advertiseAddress) + cc, err := buildConfigFromEnvs(os.Getenv("APISERVER_HOST"), os.Getenv("KUBE_CONFIG_FILE")) if err != nil { klog.Fatalf("Failed to make client: %v", err) diff --git a/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml b/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml index 4975e495e0d..460386e8c86 100644 --- a/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml +++ b/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml @@ -51,7 +51,7 @@ metadata: namespace: kube-system labels: k8s-app: elasticsearch-logging - version: v7.3.2 + version: v7.4.2 addonmanager.kubernetes.io/mode: Reconcile spec: serviceName: elasticsearch-logging @@ -59,16 +59,16 @@ spec: selector: matchLabels: k8s-app: elasticsearch-logging - version: v7.3.2 + version: v7.4.2 template: metadata: labels: k8s-app: elasticsearch-logging - version: v7.3.2 + version: v7.4.2 spec: serviceAccountName: elasticsearch-logging containers: - - image: quay.io/fluentd_elasticsearch/elasticsearch:v7.3.2 + - image: quay.io/fluentd_elasticsearch/elasticsearch:v7.4.2 name: elasticsearch-logging imagePullPolicy: Always resources: