์ด๊ฒ์ Elasticsearch์์ ๋ฏผ๊ฐํ ์ค์ ์ ์์ ํ๊ฒ ๋ง๋๋ ์์
์ ์ถ์ ํ๊ธฐ ์ํ ๋ฉํ ๋ฌธ์ ์
๋๋ค. ์ด ๊ธฐ๋ฅ์ ํต์ฌ ์ธํ๋ผ๋ elasticsearch-keystore
๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ #22335์ ์ถ๊ฐ๋์์ต๋๋ค. ๊ธฐ๋ฅ์ด ์์ฑ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๋ ค๋ฉด ๋ค์ ์์
์ด ์ฌ์ ํ ํ์ํฉ๋๋ค.
๋ค์์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
ํค ์ ์ฅ์๋ฅผ ๋ณดํธํ๋ ์ํธ์ ํน์ ๊ธฐ๋ฅ์ ๋ค๋ฃจ๊ธฐ ์ํด ๋ฌธ์ ๋ฅผ ์ ์ถํ์ต๋๋ค.
https://github.com/elastic/elasticsearch/issues/32691
์น์ ํ๋,
Kubernetes ํด๋ฌ์คํฐ์์ Elastic์ ์ฌ์ฉํ๊ณ ๊ตฌ์ฑ์ด ConfigMaps ๋ฅผ ํตํด ๋ง์ดํธ๋ ๋ Elasticsearch.keystore ์์น ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ด ๋๋ฌธ์ /etc/elasticsearch์ "์ฝ๊ธฐ ์ ์ฉ" fs๊ฐ ์๊ณ ๊ทธ ๋๋ฌธ์ ES๊ฐ ์ถฉ๋ํ ๊ฒ์
๋๋ค.
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.FileSystemException: /etc/elasticsearch/elasticsearch.keystore.tmp: Read-only file system
--
ย | Likely root cause: java.nio.file.FileSystemException: /etc/elasticsearch/elasticsearch.keystore.tmp: Read-only file system
ย | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
ย | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
ย | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
ย | at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
ย | at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
ย | at java.nio.file.Files.newOutputStream(Files.java:216)
ย | at org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:411)
ย | at org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:407)
ย | at org.apache.lucene.store.FSDirectory.createOutput(FSDirectory.java:255)
ย | at org.elasticsearch.common.settings.KeyStoreWrapper.save(KeyStoreWrapper.java:467)
ย | at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:238)
ย | at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:295)
ย | at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
ย | at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
ย | at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
ย | at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
ย | at org.elasticsearch.cli.Command.main(Command.java:90)
ย | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116)
ย | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
ย | Refer to the log for complete error details.
/etc/elasticsearch ์ธ๋ถ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ํ๋ ค๋ฉด elasticsearch.yaml์ ํค ์ ์ฅ์ ์์น๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ์ฃผ์ ์ ๋ํด ์กฐ์ธํ ์ ์์ต๋๊น?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ด team-discuss
๋ ์ด๋ธ์ ์ง์ ํ์ฌ ์์ง ์๋ฃ๋์ง ์์ "๊ฐ์ ธ๊ฐ๊ธฐ ์ข์" ์์
์ค ์์ง ์๋ฃํ๋ ค๋ ์์
์ ๊ฒฐ์ ํฉ๋๋ค. ์ผ๋จ ๊ทธ๋ ๊ฒ ํ๋ฉด ๊ฐ๋ณ ๋ฌธ์ ๋ก ์น๊ฒฉ๋์ด์ผ ํ๋ฉฐ ์ด ๋ฌธ์ ์ ์ฃผ์ ์์ง๋ ์๋ฃ๋ ์ง ์ค๋๋์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ซ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์น์ ํ๋,
Kubernetes ํด๋ฌ์คํฐ์์ Elastic์ ์ฌ์ฉํ๊ณ ๊ตฌ์ฑ์ด ConfigMaps ๋ฅผ ํตํด ๋ง์ดํธ๋ ๋ Elasticsearch.keystore ์์น ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ด ๋๋ฌธ์ /etc/elasticsearch์ "์ฝ๊ธฐ ์ ์ฉ" fs๊ฐ ์๊ณ ๊ทธ ๋๋ฌธ์ ES๊ฐ ์ถฉ๋ํ ๊ฒ์ ๋๋ค.
/etc/elasticsearch ์ธ๋ถ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ํ๋ ค๋ฉด elasticsearch.yaml์ ํค ์ ์ฅ์ ์์น๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด ์ฃผ์ ์ ๋ํด ์กฐ์ธํ ์ ์์ต๋๊น?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.