只查看那些在kubernetes集群中工作并在我的kubectl配置中列出的集群。请看我的问题更新。您好@Testobile testosimo,我很惊讶本地docker容器根本不被视为集群。从kubernetes的角度来看,它仅仅是一个容器运行时,因此与
只查看那些在kubernetes集群中工作并在我的kubectl配置中列出的集群。请看我的问题更新。您好@Testobile testosimo,我很惊讶本地docker容器根本不被视为集群。从kubernetes的角度来看,它仅仅是一个容器运行时,因此与,docker,kubernetes,message-queue,Docker,Kubernetes,Message Queue,只查看那些在kubernetes集群中工作并在我的kubectl配置中列出的集群。请看我的问题更新。您好@Testobile testosimo,我很惊讶本地docker容器根本不被视为集群。从kubernetes的角度来看,它仅仅是一个容器运行时,因此与kubectl类似的kubemqctl很可能不会将其列为集群。您使用什么命令来列出它?docker容器ls的结果是什么?它是否显示KubeMQ容器正在运行?Hello@mario请查看更新#2。你在运行什么操作系统?我正在运行ubuntu 18
只查看那些在kubernetes集群中工作并在我的kubectl配置中列出的集群。请看我的问题更新。您好@Testobile testosimo,我很惊讶
本地docker容器
根本不被视为集群。从kubernetes的角度来看,它仅仅是一个容器运行时,因此与kubectl类似的kubemqctl
很可能不会将其列为集群。您使用什么命令来列出它?docker容器ls的结果是什么?它是否显示KubeMQ容器正在运行?Hello@mario请查看更新#2。你在运行什么操作系统?我正在运行ubuntu 18.04。你能展示一下对docker容器中运行的kubemq集群的任何kubemqctl调用输出吗?Hello@Testobile Testossimo,我运行的是Ubuntu 16.04,但这不重要。我将很快更新我的答案,并尝试更详细地解释它。顺便说一句。您不想使用kubernetes的真正原因是什么?在linux机器上,您可以使用--vm driver=none
选项运行minikube,这样它就不会使用支持的虚拟机监控程序创建单独的vm,而是在本地机器上运行所有kubernetes控制平面组件。它还使用本地安装的docker运行时。我经常在不支持嵌套虚拟化的VM中使用这种环境进行测试。
Getting KubeMQ Cluster List...
Current Kubernetes cluster context connection: gke_xxxxx_us-central1-a_xxxx
NAME DESIRED RUNNING READY IMAGE AGE SERVICES
env-dev/kubemq 3 3 3 kubemq/kubemq:latest 1792h54m57s ClusterIP 10.0.2.211:8080,50000,9090,5228
Current Kubernetes cluster context connection: gke_xxxxx_us-central1-a_xxxx ? Select kubernetes cluster context [Use arrows to move, type to filter, ? for more help]
> gke_xxxxx_us-central1-a_xxxx
autointegrated: false
currentnamespace: kubemq
currentstatefulset: kubemq-cluster
host: localhost
grpcport: 50000
restport: 9090
apiport: 8080
issecured: false
certfile: ""
kubeconfigpath: ""
connectiontype: grpc
defaulttoken: XXXXXX-ed0c-4077-9a74-b53805ee3214
archi@eagle:~/prj/kubemq-go/examples/rpc/command$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3cd60e4373e4 kubemq/kubemq "./kubemq-run" 46 hours ago Up 46 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:50000->50000/tcp modest_wescoff
kubemqctl cluster get
$kubemqctl queries attach userservice_channel
Adding 'userservice_channel' to attach list
[queries] [userservice_channel] kubemq-3cd60e4373e4 Server connected.
[queries] [userservice_channel] { "Kind": "request", "ID": "user_token_validate", "Channel": "userservice_channel", "ReplyChannel": "_INBOX.OYnfIQX2k7V9hTmevxHApp.Iqfr3HUw", "Metadata": "some-metadata", "Body": "\n\ufffd\u0001eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoxLCJyb2xlIjoic3VwZXJ1c2Vy.......
Usage:
kubemqctl [command]
Available Commands:
cluster Executes KubeMQ cluster management commands
commands Execute KubeMQ 'commands' RPC commands
config Run Kubemqctl configuration wizard command
? Set Default KubeMQ Token (press Enter for default):
? Select KubeMQ install location: [Use arrows to move, type to filter, ? for more help]
Kubernetes cluster
MicroK8s
K3s
Minikube
Other Kubernetes distribution
> Local docker container
curl --location --request GET "http://localhost:8080/health" \
--header "Content-Type: application/json"
mv .kube/config .kube/config_temporarily_disabled
Getting KubeMQ Cluster List...
Error: Kubernetes Config File: Stat <path_to_the_kube_config_file>: No Such File Or Directory
kubemqctl cluster create -t <YOUR_KUBEMQ_TOKEN>
$ kubemqctl
Usage:
kubemqctl [command]
Available Commands:
cluster Executes KubeMQ cluster management commands
commands Execute KubeMQ 'commands' RPC commands
config Run Kubemqctl configuration wizard command
events Execute KubeMQ 'events' Pub/Sub commands
events_store Execute KubeMQ 'events_store' Pub/Sub commands
help Help about any command
queries Execute KubeMQ 'queries' RPC based commands
queues Execute KubeMQ 'queues' commands
Flags:
-h, --help help for kubemqctl
--version version for kubemqctl
Use "kubemqctl [command] --help" for more information about a command.
c9adac88484f kubemq/kubemq "./kubemq-run" 3 hours ago Up 3 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:50000->50000/tcp sleepy_ganguly
$ sudo netstat -ntlp | egrep "8080|9090|50000"
tcp6 0 0 :::8080 :::* LISTEN 21431/docker-proxy
tcp6 0 0 :::50000 :::* LISTEN 21394/docker-proxy
tcp6 0 0 :::9090 :::* LISTEN 21419/docker-proxy
kubemqctl queues
$ kubemqctl queues list
CHANNELS:
NAME CLIENTS MESSAGES BYTES FIRST_SEQUENCE LAST_SEQUENCE
q1 1 12 2621 1 12
TOTAL CHANNELS: 1
CLIENTS:
CLIENT_ID CHANNEL ACTIVE LAST_SENT PENDING STALLED
##################################### q1 false 2 1 true
TOTAL CLIENTS: 1
kubemqctl queues send
Error: Missing Arguments, Must Be 2 Arguments, Channel And A Message
Try:
# Send message to a queue channel channel
kubemqctl queue send q1 some-message
# Send message to a queue channel with metadata
kubemqctl queue send q1 some-message --metadata some-metadata
# Send 5 messages to a queues channel with metadata
kubemqctl queue send q1 some-message --metadata some-metadata -m 5
# Send message to a queue channel with a message expiration of 5 seconds
kubemqctl queue send q1 some-message -e 5
# Send message to a queue channel with a message delay of 5 seconds
kubemqctl queue send q1 some-message -d 5
# Send message to a queue channel with a message policy of max receive 5 times and dead-letter queue 'dead-letter'
kubemqctl queue send q1 some-message -r 5 -q dead-letter
kubemqctl queue send queue2 some-message --metadata some-metadata
[Channel: queue2] [client id: ##############################] -> {id: ############################, metadata: some-metadata, body: some-message - (0), sent at: #### }
CHANNELS:
NAME CLIENTS MESSAGES BYTES FIRST_SEQUENCE LAST_SEQUENCE
q1 1 12 2621 1 12
queue2 0 1 232 1 1
TOTAL CHANNELS: 2
...
docker run -d -p 8080:8080 -p 50000:50000 -p 9090:9090 -v kubemq-vol:/store -e KUBEMQ_TOKEN= "Your KubeMQ Token Here" kubemq/kubemq
minikube start --vm-driver=virtualbox
kubemqclt cluster create -t "Your Token Here"