kubernetes實戰之consul篇及consul在windows下搭建consul簡單測試環境

consul是一款服務發現中間件,1.12版本後增長servicemesh功能.consul是分佈式的,可擴展的,高可用的根據官方文檔介紹,目前已知最大的consul集羣有5000個節點,consul被普遍用用於服務發現,服務健康檢測以及分佈式配置存儲,而且不斷地改進對servicemesh和kubernetes的支持,不少優秀項目包括ocelot,spring cloud都提供了與consul的便利集成,本系列也會將consul作爲一個重點的有狀態服務較爲細緻講解,讓你們對kubernetes在服務管理上的便捷性,自發性有更深的理解(在kubernetes裏,有狀態服務部署是一件很困難的事,要考慮服務間必須互相排斥,對服務資源的合理限制以及服務發生漂移時數據的處理,部分服務掛掉後如何在沒有人工介入的狀況下自動加入集羣等問題),雖然咱們在第一天接觸容器的時候都會看到容器與虛擬機的對比,以及容器的優點,可是不少初學者仍然是把容器看成虛擬機來使用,按照在虛擬機中部署應用的思路在容器裏部署應用,固然僅僅爲了方便測試這樣作是無可厚非的,可是生產環境是很是嚴肅的,必定要對可能產生的問題有充分的預估以便提早安排應對方案,而且充分利用新技術的特色對本身應用的部署靈活性,維護便捷性以及應用自己的伸縮性等方面進行持續優化.html

consul是一款服務發現中間件,1.12版本後增長servicemesh功能.consul是分佈式的,可擴展的,高可用的.其主要功能以下node

  • service discovery:consul經過DNS或者HTTP接口使服務註冊和服務發現變的很容易,一些外部服務,例如saas提供的也能夠同樣註冊。
  • health checking:健康檢測使consul能夠快速的告警在集羣中的操做。和服務發現的集成,能夠防止服務轉發到故障的服務上面。
  • key/value storage:一個用來存儲動態配置的系統。提供簡單的HTTP接口,能夠在任何地方操做。
  • multi-datacenter:無需複雜的配置,便可支持任意數量的區域

基本概念

CLIENT

CLIENT表示consul的client模式,就是客戶端模式。是consul節點的一種模式,這種模式下,全部註冊到當前節點的服務會被轉發到SERVER,自己是不持久化這些信息。linux

SERVER

SERVER表示consul的server模式,代表這個consul是個server,這種模式下,功能和CLIENT都同樣,惟一不一樣的是,它會把全部的信息持久化的本地,這樣遇到故障,信息是能夠被保留的。web

SERVER-LEADER

中間那個SERVER下面有LEADER的字眼,代表這個SERVER是它們的老大,它和其它SERVER不同的一點是,它須要負責同步註冊的信息給其它的SERVER,同時也要負責各個節點的健康監測。算法

其它信息

其它信息包括它們之間的通訊方式,還有一些協議信息,算法。它們是用於保證節點之間的數據同步,實時性要求等等一系列集羣問題的解決。這些有興趣的本身看看官方文檔。spring

因爲本系列的性質是關於devops的,所以不對consul作詳細介紹,須要瞭解consul的同窗能夠參考官方文檔或者相關博客.這裏的關注點主要在於測試環境和生產環境的部署上.docker

平臺支持狀況

consul支持linux,macos和windows平臺,開發環境可使用基於windows的consul,僅有一個可執行程序,使用很是方便,生產環境建議使用linux或者docker/kubernetes部署macos

後面咱們將會對consul windows測試環境部署,docker 單節點部署,docker集羣部署,kubernetes集羣部署一一作介紹.windows

consul在windows下測試環境簡單部署

本篇只介紹在windows下部署單節點測試環境,關於集羣的部署能夠參照後面docker的部署方式.瀏覽器

本篇很是簡單,可是考慮到內容的獨立性,所以單獨作爲一節.

consul windows版下載

能夠在百度裏搜索consul,進入到官網首頁就能夠看到醒目的download,選擇windows 版的下載便可.

下載完成後能夠看到是一個單文件,名叫做consul.exe,這裏建議把它單獨放到一個文件夾裏面,由於後面可能須要添加配置文件,放在一個文件夾下面方便管理.

consul windows版 部署

注意這裏不像普通的exe雙擊安裝,而是須要經過命令行啓動

consul.exe所在的文件夾打開命令窗口,輸入consul --help就會出現如下關於consul的命令幫助

λ consul --help
Usage: consul [--version] [--help] <command> [<args>]

Available commands are:
    acl            Interact with Consul's ACLs
    agent          Runs a Consul agent
    catalog        Interact with the catalog
    connect        Interact with Consul Connect
    debug          Records a debugging archive for operators
    event          Fire a new event
    exec           Executes a command on Consul nodes
    force-leave    Forces a member of the cluster to enter the "left" state
    info           Provides debugging information for operators.
    intention      Interact with Connect service intentions
    join           Tell Consul agent to join cluster
    keygen         Generates a new encryption key
    keyring        Manages gossip layer encryption keys
    kv             Interact with the key-value store
    leave          Gracefully leaves the Consul cluster and shuts down
    lock           Execute a command holding a lock
    maint          Controls node or service maintenance mode
    members        Lists the members of a Consul cluster
    monitor        Stream logs from a Consul agent
    operator       Provides cluster-level tools for Consul operators
    reload         Triggers the agent to reload configuration files
    rtt            Estimates network round trip time between nodes
    services       Interact with services
    snapshot       Saves, restores and inspects snapshots of Consul server state
    validate       Validate config files/directories
    version        Prints the Consul version
    watch          Watch for changes in Consu

在命令窗口輸入consul agent -dev就能夠以dev模式啓動consul了,如下是輸出內容的頭部

==> Starting Consul agent...
==> Consul agent running!
           Version: 'v1.4.0'
           Node ID: '2be40d2e-a5eb-5dda-271f-70a39141d791'
         Node name: 'DESKTOP-OE0CB8G'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: false)
       Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
      Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false

==> Log data will now stream in as it occurs:

經過以上輸入內容能夠看到,consul已經運行,版本是1.4.HTTP端口是8500,咱們在瀏覽器輸入localhost:8500就能夠看到consul的web管理界面了

img

至此,windows配置已經完成了.

更改默認端口

能夠看到,默認狀況下,http端口是8500,測試環境下咱們可能沒有需求更改端口,但是正式環境部署的時候可能須要更改端口號,更改端口號也很是簡單,在啓動agent的時候加上-http-port選項便可.

consul agent -dev -http-port=8400
==> Starting Consul agent...
==> Consul agent running!
           Version: 'v1.4.0'
           Node ID: '7a083b04-cd4a-04af-743b-4fdc8d82c62e'
         Node name: 'DESKTOP-OE0CB8G'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: false)
       Client Addr: [127.0.0.1] (HTTP: 8400, HTTPS: -1, gRPC: 8502, DNS: 8600)
      Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false

從輸出信息中能夠看到,http端口已經更改爲8400了.

原文出處:https://www.cnblogs.com/tylerzhou/p/11155142.html

相關文章
相關標籤/搜索