Elastic Cloud on Kubernetes에서 온프레미 k3s에 Elasticsearch 7.4.0 배포
8566 단어 k3sElasticsearchkubernetes
소개
Elasticsearch를 만지고 싶었기 때문에 수중에 환경을 만들어 보기로 했습니다.
모처럼이므로 최근 출시된 최신 7.4.0+ 마지막 기사 에서 구축한 k3s 환경을 사용합니다.
(k3s 특유의 요소는 없기 때문에, 통상의 Kubernetes 환경에서도 변함없이 움직인다고 생각합니다)
CRD 작성
Elastic Cloud on Kubernetes는 Elasticsearch와 Kibana를 고유한 Custom Resource로 정의합니다.
공식 문서 의 QuickStart 에 있는,
$ kubectl apply -f https://download.elastic.co/downloads/eck/1.0.0-beta1/all-in-one.yaml
을 실행합니다.
※2019/10/12 현재, 공식 문서 기재의 URL은 404가 되고 있습니다.
URL의 버젼 부분을 Github의 릴리스 로 공개되고 있는 표기로 하면 좋을 것 같습니다.
상기에서는 「1.0.0-beta1-bc12」라고 하고 있습니다.
※2019/10/23 갱신
1.0.0-beta1이 공개됨에 따라 위의 설명은 더 이상 필요하지 않습니다.
공식 문서의 기재대로 문제 없습니다.
네임스페이스 만들기
관리상 Namespace를 나누고 싶기 때문에 작성합니다.
이번에는 "elastic"로했습니다.
namespace.yamlapiVersion: v1
kind: Namespace
metadata:
name: elastic
labels:
name: elastic
$ kubectl apply -f namespace.yaml
namespace/elastic created
Elasticsearch 배포
이번에는 간편하게 호스트 디렉토리를 hostPath로 데이터 영속화에 이용합니다.
다중 노드 구성으로 할 때는 검토.
또한 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
elasticsearch.yamlapiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic
spec:
version: 7.4.0
nodeSets:
- name: node
count: 1
config:
node.master: true
node.data: true
node.ingest: true
node.store.allow_mmap: false
podTemplate:
spec:
volumes:
- name: elasticsearch-data
hostPath:
path: /opt/k8s-elastic
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 9200
targetPort: 9200
type: LoadBalancer
loadBalancerIP: 192.168.24.103
$ kubectl apply -f elasticsearch.yaml
elasticsearch.elasticsearch.k8s.elastic.co/elasticsearch created
조금 기다린 후 elasticsearch 리소스의 상태를 확인하고,
$ kubectl get elasticsearch -n elastic
NAME HEALTH NODES VERSION PHASE AGE
elasticsearch green 1 7.4.0 Ready 3m15s
위와 같이 HEALTH가 green, PHASE가 Ready이면 OK입니다.
비밀번호가 보안에 저장되어 있으므로 다음과 같이 얻고,
$ PASSWORD=$(kubectl get secret elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' -n elastic | base64 --decode)
curl로 액세스해 보겠습니다.
$ curl -u "elastic:$PASSWORD" http://192.168.24.103:9200
{
"name" : "elasticsearch-es-node-0",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "WGWsr4wSQV2eodUKapxyoA",
"version" : {
"number" : "7.4.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
"build_date" : "2019-09-27T08:36:48.569419Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Kibana 배포
Kibana도 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
kibana.yamlapiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: kibana
namespace: elastic
spec:
version: 7.4.0
count: 1
elasticsearchRef:
name: elasticsearch
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 80
targetPort: 5601
type: LoadBalancer
loadBalancerIP: 192.168.24.104
$ kubectl apply -f kibana.yaml
kibana.kibana.k8s.elastic.co/kibana created
배포가 끝나면 브라우저에서 http://192.168.24.104에 액세스하면,
로그인 화면이 표시됩니다.
Username,Password는 Elasticsearch와 같은 것을 입력하면 OK입니다.
Reference
이 문제에 관하여(Elastic Cloud on Kubernetes에서 온프레미 k3s에 Elasticsearch 7.4.0 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/c3b1135540ba6b79098a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Elastic Cloud on Kubernetes는 Elasticsearch와 Kibana를 고유한 Custom Resource로 정의합니다.
공식 문서 의 QuickStart 에 있는,
$ kubectl apply -f https://download.elastic.co/downloads/eck/1.0.0-beta1/all-in-one.yaml
을 실행합니다.
※2019/10/12 현재, 공식 문서 기재의 URL은 404가 되고 있습니다.
URL의 버젼 부분을 Github의 릴리스 로 공개되고 있는 표기로 하면 좋을 것 같습니다.
상기에서는 「1.0.0-beta1-bc12」라고 하고 있습니다.
※2019/10/23 갱신
1.0.0-beta1이 공개됨에 따라 위의 설명은 더 이상 필요하지 않습니다.
공식 문서의 기재대로 문제 없습니다.
네임스페이스 만들기
관리상 Namespace를 나누고 싶기 때문에 작성합니다.
이번에는 "elastic"로했습니다.
namespace.yamlapiVersion: v1
kind: Namespace
metadata:
name: elastic
labels:
name: elastic
$ kubectl apply -f namespace.yaml
namespace/elastic created
Elasticsearch 배포
이번에는 간편하게 호스트 디렉토리를 hostPath로 데이터 영속화에 이용합니다.
다중 노드 구성으로 할 때는 검토.
또한 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
elasticsearch.yamlapiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic
spec:
version: 7.4.0
nodeSets:
- name: node
count: 1
config:
node.master: true
node.data: true
node.ingest: true
node.store.allow_mmap: false
podTemplate:
spec:
volumes:
- name: elasticsearch-data
hostPath:
path: /opt/k8s-elastic
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 9200
targetPort: 9200
type: LoadBalancer
loadBalancerIP: 192.168.24.103
$ kubectl apply -f elasticsearch.yaml
elasticsearch.elasticsearch.k8s.elastic.co/elasticsearch created
조금 기다린 후 elasticsearch 리소스의 상태를 확인하고,
$ kubectl get elasticsearch -n elastic
NAME HEALTH NODES VERSION PHASE AGE
elasticsearch green 1 7.4.0 Ready 3m15s
위와 같이 HEALTH가 green, PHASE가 Ready이면 OK입니다.
비밀번호가 보안에 저장되어 있으므로 다음과 같이 얻고,
$ PASSWORD=$(kubectl get secret elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' -n elastic | base64 --decode)
curl로 액세스해 보겠습니다.
$ curl -u "elastic:$PASSWORD" http://192.168.24.103:9200
{
"name" : "elasticsearch-es-node-0",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "WGWsr4wSQV2eodUKapxyoA",
"version" : {
"number" : "7.4.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
"build_date" : "2019-09-27T08:36:48.569419Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Kibana 배포
Kibana도 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
kibana.yamlapiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: kibana
namespace: elastic
spec:
version: 7.4.0
count: 1
elasticsearchRef:
name: elasticsearch
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 80
targetPort: 5601
type: LoadBalancer
loadBalancerIP: 192.168.24.104
$ kubectl apply -f kibana.yaml
kibana.kibana.k8s.elastic.co/kibana created
배포가 끝나면 브라우저에서 http://192.168.24.104에 액세스하면,
로그인 화면이 표시됩니다.
Username,Password는 Elasticsearch와 같은 것을 입력하면 OK입니다.
Reference
이 문제에 관하여(Elastic Cloud on Kubernetes에서 온프레미 k3s에 Elasticsearch 7.4.0 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/c3b1135540ba6b79098a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
apiVersion: v1
kind: Namespace
metadata:
name: elastic
labels:
name: elastic
$ kubectl apply -f namespace.yaml
namespace/elastic created
이번에는 간편하게 호스트 디렉토리를 hostPath로 데이터 영속화에 이용합니다.
다중 노드 구성으로 할 때는 검토.
또한 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
elasticsearch.yaml
apiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic
spec:
version: 7.4.0
nodeSets:
- name: node
count: 1
config:
node.master: true
node.data: true
node.ingest: true
node.store.allow_mmap: false
podTemplate:
spec:
volumes:
- name: elasticsearch-data
hostPath:
path: /opt/k8s-elastic
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 9200
targetPort: 9200
type: LoadBalancer
loadBalancerIP: 192.168.24.103
$ kubectl apply -f elasticsearch.yaml
elasticsearch.elasticsearch.k8s.elastic.co/elasticsearch created
조금 기다린 후 elasticsearch 리소스의 상태를 확인하고,
$ kubectl get elasticsearch -n elastic
NAME HEALTH NODES VERSION PHASE AGE
elasticsearch green 1 7.4.0 Ready 3m15s
위와 같이 HEALTH가 green, PHASE가 Ready이면 OK입니다.
비밀번호가 보안에 저장되어 있으므로 다음과 같이 얻고,
$ PASSWORD=$(kubectl get secret elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' -n elastic | base64 --decode)
curl로 액세스해 보겠습니다.
$ curl -u "elastic:$PASSWORD" http://192.168.24.103:9200
{
"name" : "elasticsearch-es-node-0",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "WGWsr4wSQV2eodUKapxyoA",
"version" : {
"number" : "7.4.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
"build_date" : "2019-09-27T08:36:48.569419Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Kibana 배포
Kibana도 LoadBalancer로 외부로부터의 액세스를 HTTP로 받을 수 있도록 합니다.
kibana.yamlapiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: kibana
namespace: elastic
spec:
version: 7.4.0
count: 1
elasticsearchRef:
name: elasticsearch
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 80
targetPort: 5601
type: LoadBalancer
loadBalancerIP: 192.168.24.104
$ kubectl apply -f kibana.yaml
kibana.kibana.k8s.elastic.co/kibana created
배포가 끝나면 브라우저에서 http://192.168.24.104에 액세스하면,
로그인 화면이 표시됩니다.
Username,Password는 Elasticsearch와 같은 것을 입력하면 OK입니다.
Reference
이 문제에 관하여(Elastic Cloud on Kubernetes에서 온프레미 k3s에 Elasticsearch 7.4.0 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/c3b1135540ba6b79098a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: kibana
namespace: elastic
spec:
version: 7.4.0
count: 1
elasticsearchRef:
name: elasticsearch
http:
tls:
selfSignedCertificate:
disabled: true
service:
spec:
ports:
- port: 80
targetPort: 5601
type: LoadBalancer
loadBalancerIP: 192.168.24.104
$ kubectl apply -f kibana.yaml
kibana.kibana.k8s.elastic.co/kibana created
Reference
이 문제에 관하여(Elastic Cloud on Kubernetes에서 온프레미 k3s에 Elasticsearch 7.4.0 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ussvgr/items/c3b1135540ba6b79098a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)