如何在带有kubectl的coreos虚拟机上运行cassandra服务?

mklgxw1f  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(572)

我正在尝试创建一个coreos集群来运行cassandra的示例。为了做到这一点,我一直试图安装Cassandra服务只在一个虚拟机。我的cassandra.service文件是这样的

[Unit]
Description=cassandra 
After=docker.service 
Requires=docker.service

[Service]
Environment=CASSANDRA_CLUSTERNAME=cluster
CASSANDRA_SSL_STORAGE_PORT=7002 
EnvironmentFile=-/etc/environment
ExecStartPre=-/usr/bin/docker kill %p-%i
ExecStartPre=-/usr/bin/docker rm %p-%i
ExecStartPre=/usr/bin/docker pull endocode/%p
ExecStartPre=/usr/bin/bash -c "echo $${COREOS_PUBLIC_IPV4:-$$(hostname - i)} | /usr/bin/etcdctl set /cassandra_%i"
ExecStartPre=/usr/bin/bash -c "while [[ ! $$(/usr/bin/etcdctl get /cassandra_1) ]]; do echo 'Waiting for Cassandra Seed node'; sleep 1; done; echo 'Cassandra Seed node is UP'; /usr/bin/etcdctl get /cassandra_1"
ExecStart=/usr/bin/bash -c "BROADCAST_ADDR=$${COREOS_PUBLIC_IPV4:- $$(hostname -i)} && CASSANDRA_SEEDS=$(/usr/bin/etcdctl get /cassandra_1 | /usr/bin/tr -d '\n') && exec /usr/bin/docker run --rm --name %p-%i
-e CASSANDRA_CLUSTERNAME=${CASSANDRA_CLUSTERNAME}
-e CASSANDRA_SEEDS=\"$CASSANDRA_SEEDS\"
-e BROADCAST_ADDR=$BROADCAST_ADDR
-e CASSANDRA_SSL_STORAGE_PORT=$CASSANDRA_SSL_STORAGE_PORT --publish 7000:7000 --publish 
$CASSANDRA_SSL_STORAGE_PORT:$CASSANDRA_SSL_STORAGE_PORT -- publish 9160:9160 --publish 9042:9042 --publish 7199:7199 endocode/%p" 
ExecStop=/usr/bin/docker stop %p-%i
ExecStopPost=/usr/bin/etcdctl rm /cassandra_%i
TimeoutStartSec=900s

[X-Fleet] 
Conflicts=%p@*.service

但要运行服务,我必须执行命令
fleetctl启动cassandra@1.service
舰队已经从coreos中移除,所以我需要用kubernetes代替。
我应该使用哪个kubectl命令在vm上启动cassandra服务,以及如何在coreos上安装kubectl?

6ovsh4lw

6ovsh4lw1#

你不能用这种简单的方法来做 kubectl 不仅仅是一个“新命令”取代了旧命令 fleetctl 允许你做同样的事情。它涉及到完全不同的集群编排方法 fleetctl 基本上是一个控制 systemd 在集群层面。它结合了规则 systemd 具有某些特定于机队的属性的单元使您能够在群集中运行服务。实际上,它给了你这样的能力,因为它不是积极发展,它是不支持了相当长的一段时间了。正如您在coreos文档中看到的,他们建议将集群编排转换到kubernetes。
kubernetes是完全不同的工具,您将无法使用它运行您附加的扩展单元文件。它们被设计成专门由 fleetctl (类似于 systemctl 用于管理标准系统单位的命令)。
如果你有关于安装的问题 kubectl 在coreos上,这是非常简单的,所有的事情都在这里解释,但是它对您的特定任务没有多大帮助。首先,我建议你熟悉Kubernetes的一般概念。如果您使用的是这个特定的系统,您可以从关于在coreos上运行kubernetes的文章开始。只有在这之后,您可能会在kubernetes官方文档中找到一些关于在kubernetes上部署cassandra集群的文章,比如这篇文章,但是关于这个主题有很多不同的教程,您会很容易找到最适合您需要的教程。

相关问题