[英]How to run kubectl exec on scripts that never end
我有一個 mssql pod,我需要使用sql_exporter來導出其指標。 我能夠手動設置整個事情:
我嘗試使用kubectl exec -it ...
自動執行此操作,並且能夠執行第 1 步和第 2 步。當我嘗試使用kubectl exec -it "$mssql_pod_name" -- bash -c ./sql_exporter
執行第 3 步時,腳本只是掛起,我理解服務器將永遠在監聽,但這會停止我的其余安裝腳本。
I0722 21:26:54.299112 435 main.go:52] Starting SQL exporter (version=0.5, branch=master, revision=fc5ed07ee38c5b90bab285392c43edfe32d271c5) (go=go1.11.3, user=root@f24ba5099571, date=20190114-09:24:06)
I0722 21:26:54.299534 435 config.go:18] Loading configuration from sql_exporter.yml
I0722 21:26:54.300102 435 config.go:131] Loaded collector "mssql_standard" from mssql_standard.collector.yml
I0722 21:26:54.300207 435 main.go:67] Listening on :9399
<nothing else, never ends>
任何關於讓它靜音並讓它在后台運行的提示(我不能按 ctrl-c,因為這會停止端口監聽)。 或者有沒有更好的方法在 pod 部署時自動安裝插件? 謝謝
這個答案應該對你有所幫助。 您應該(!?)能夠使用./sql_exporter &
在后台運行該進程(當不使用--stdin --tty
時)。 如果這不起作用,您可以按照相同答案的描述嘗試nohup
。
使用kubectl exec
不是編寫 Kubernetes 集群的好方法。
kubectl exec
最適合用於調試而不是將解決方案部署到集群。
我假設有人為 Microsoft SQL Server 創建了一個 Kubernetes 部署(或類似的)。 您現在想要使用導出器來補充該部署。
您有以下選擇:
sql_exporter
作為 Sidecar(另一個容器)添加到包含 Microsoft SQL Server 容器的 Pod 中。 導出器通過localhost
訪問 SQL Server。 這是部署補充應用程序的功能(例如日志記錄、監控)時的常見模式sql_exporter
創建一個新的 Deployment(或類似的)並將其作為獨立服務運行。 配置它抓取一個|更多的 Microsoft SQL Server 實例。這兩種方法:
sql_exporter
創建一個容器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.