RadosGW部署

axing
2025-06-15 / 0 评论 / 2 阅读 / 正在检测是否收录...

一、创建 radosgw服务

root@ubuntu01:~# ceph orch apply rgw default es --placement="count:3"
Scheduled rgw.default update...
<realm-name>:RadosGW 的域名,可以自定义,例如 default.
<zone-name>:RadosGW 的区域名,可以自定义,例如 es.
--placement="count:1":表示 RadosGW 实例的数量。如果你想在多个节点上部署,可以增加 count 的值,或者指定节点列表

二、验证radosgw服务状态

root@ubuntu01:~# ceph orch ps | grep rgw
rgw.default.ubuntu01.lusoxe  ubuntu01  *:80              starting              -    -        -        -  <unknown>  <unknown>     known>     
rgw.default.ubuntu02.nvamia  ubuntu02  *:80              starting              -    -        -        -  <unknown>  <unknown>     known>     
rgw.default.ubuntu03.rkgoya  ubuntu03  *:80              starting              -    -        -        -  <unknown>  <unknown>     known>     
root@ubuntu01:~# ceph -s
  cluster:
    id:     5b0e9b94-e6bb-11ef-a18c-274714e73e14
    health: HEALTH_WARN
            clock skew detected on mon.ubuntu03
            1 pool(s) do not have an application enabled
 
  services:
    mon: 3 daemons, quorum ubuntu01,ubuntu02,ubuntu03 (age 8h)
    mgr: ubuntu02.jmaxlt(active, since 8h), standbys: ubuntu01.exrhij
    mds: 1/1 daemons up, 1 standby
    osd: 3 osds: 3 up (since 8h), 3 in (since 2w)
    rgw: 3 daemons active (3 hosts, 1 zones)
 
  data:
    volumes: 1/1 healthy
    pools:   10 pools, 181 pgs
    objects: 9.37k objects, 2.5 GiB
    usage:   8.5 GiB used, 111 GiB / 120 GiB avail
    pgs:     181 active+clean
 
  io:
    client:   214 KiB/s rd, 5.1 KiB/s wr, 247 op/s rd, 141 op/s wr

三、验证 radosgw 存储池资源

#查看存储池列表
root@ubuntu01:~# ceph osd pool ls
.mgr
kubernetes
k8s-rbd
k8s
cephfs_data
cephfs_metadata
.rgw.root
default.rgw.log
default.rgw.control
default.rgw.meta
#查看默认radosgw存储池信息
root@ubuntu01:~# radosgw-admin zone get --rgw-zone=default --rgw-zonegroup=default
{
    "id": "7f883cbd-8ada-48aa-9358-f2c09aee0ca7",# 区域的唯一标识符
    "name": "default",# 默认区域的名称
    "domain_root": "default.rgw.meta:root",# 区域的根域名
    "control_pool": "default.rgw.control",# 系统控制池,在有数据更新是,通知其他RGW更新缓存
    "gc_pool": "default.rgw.log:gc", # 用于垃圾回收的存储池
    "lc_pool": "default.rgw.log:lc",# 用于存储日志的存储池
    "log_pool": "default.rgw.log",# 存储日志信息,用于记录各种log信息
    "intent_log_pool": "default.rgw.log:intent",
    "usage_log_pool": "default.rgw.log:usage",
    "roles_pool": "default.rgw.meta:roles",# default.rgw.meta:元数据存储池,通过不同的名称空间分别存储不同的rados对象
    "reshard_pool": "default.rgw.log:reshard",
    "user_keys_pool": "default.rgw.meta:users.keys",# 用户的密钥名称空间users.keys
    "user_email_pool": "default.rgw.meta:users.email",# 用户的email名称空间users.email
    "user_swift_pool": "default.rgw.meta:users.swift",# 用户的subuser的名称空间users.swift
    "user_uid_pool": "default.rgw.meta:users.uid", # 用户UID
    "otp_pool": "default.rgw.otp",
    "system_key": {
        "access_key": "",
        "secret_key": ""
    },
    "placement_pools": [
        {
            "key": "default-placement",
            "val": {
                "index_pool": "default.rgw.buckets.index",# 存放bucket到object的索引信息
                "storage_classes": {
                    "STANDARD": {
                        "data_pool": "default.rgw.buckets.data"# 存放对象的数据
                    }
                },
                "data_extra_pool": "default.rgw.buckets.non-ec",# 数据的额外信息存储池
                "index_type": 0,
                "inline_data": true
            }
        }
    ],
    "realm_id": "",
    "notif_pool": "default.rgw.log:notif"
}
‍#查看默认配置信息
root@ubuntu01:~# ceph osd pool get default.rgw.meta crush_rule
crush_rule: replicated_rule
root@ubuntu01:~# ceph osd pool get default.rgw.meta size
size: 3
root@ubuntu01:~# ceph osd pool get default.rgw.meta pgp_num
pgp_num: 16
root@ubuntu01:~# ceph osd pool get default.rgw.meta pg_num
pg_num: 16

四、访问radosgw服务

访问radosgw服务所在的节点 IP+默认 80 端口既可。

mbwlxqo6.png

五、RadosGW https
5.1生成自签证书

root@ubuntu01:/# mkdir -p /etc/ceph/rgw/cert
root@ubuntu01:/# openssl req -newkey rsa:2048 -x509 -days 3650 -nodes -out /etc/ceph/rgw/cert/rgw-cert.pem -keyout /etc/ceph/rgw/cert/rgw-key.pem -subj "/CN=ceph-rgw.local.com"
Generating a RSA private key
...............................+++++
..................................+++++
writing new private key to '/etc/ceph/rgw/cert/rgw-key.pem'
-----
root@ubuntu01:/# tree /etc/ceph/rgw/cert/
/etc/ceph/rgw/cert/
├── rgw-cert.pem
└── rgw-key.pem

0 directories, 2 files

5.2创建配置文件

#将公钥和私钥内容添加到配置文件中 rgw.yaml 
service_type: rgw
service_id: default
placement:
  hosts:
    - ubuntu01
    - ubuntu02
    - ubuntu03
spec:
  rgw_frontend_ssl_certificate: |
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC/q3zdOnRPSsRz
    OlP1Z0rBYJUn9VzZF+Rlnt7IN3q+6Ir/jCb6jtMYP1A+KiTcv8OaTdre4OxOjIFG
    iK1bZpEl16q+phKGbnfbphrptCVwpw7vV3n7Pjz57awXM728S7ql62JutIfrDWqN
    YY0EnMeO7xFrXdy4ow8d3GobhsfiTcU38nyWXZ5Qy7vd43kJElMxbbsXJrhPO43x
    6gJCWdvIztdjewtFW2rqy8cDPaKxcXubYAOlJUzN53eAdGxC6Br6HWsyVn8VnsPI
    UQigwSzOx6DAa9QKjVIIi454pb3C+se1TD3el1JhZ5ZDav5g0Fp9zB1DetkR3vh7
    3ixqwddRAgMBAAECggEADohJElkBQpXPqVDt1rh7MYhKJtpyrL8kARR3ncSfGOR2
    zYNp3SuBE+CRC/WUD+y2PvfSNX3mTNpYXum0Ay8WqEDe4E+lLe4oRk4k0j1nbVAt
    ULZYOFVyuBxuJOA2bZVsVHIxZ2VmvMqqnoeb8pKUiuDTeEmIl7M9TS1OGkIw25aa
    VUU+kFLNwhVXQPAYu17dApl5GWI32gNcfZD7QF3fwNMz+u4h6dLCBiI+IQmXjtzX
    OCPs2exwfj9NaZ6jxZPQU1i2YoMRh2AuephP7hW+zeTUpgd4A6VHkX5ASKvs89U2
    qel2639RLqdEg1bu7f5kHOlqYVmwuj6rw+EAyfxpQQKBgQDl81/euRc7NKj3uLoh
    yJqe/vQkvLKgKwVDAM6aKdI8/FhG1LNYbm5QJ83EuSmXSPm20bJjZWOjmQuIXSV2
    V2UvmygHcQOeZsipJPgc2Yza6b3MDCKbBq/Kb4YrTtVLogjgKbbJXg99sSPKgJFG
    B4g4OGs8H2inkE3tKOn4CXUF2QKBgQDVYfXnMuGcZ8LfBiD1zfX1WGt8jKsoDI2/
    LGGwQa/0Lo7xgqrN47hOFKMDGWglJPT06G2JR3gsPIvJlZNo5m6tYoLtZ0vEERlK
    +YzTVmTA/ThGAK7rePQv7GOGWubF6WYA8Bdyfqnm0yv8QtptcXq4bzyLEGMTKh4a
    mNOBw0eaOQKBgQDh4IczyKzBQ6EWdSahOORpehdoXtM38gphHtHTLXGO5nHwYc8p
    9o/1vKOrshbgvJZOtv18FYQil5t0f8rkzERg1xAi/yiG2IATZnUyIaDzCNefL+xu
    S8syFwq8T9vFR41gZJlghDzDQtXdfR02pP9x+jmb/V5X+rARXjc1plSFQQKBgAvG
    0UyGSV9Zdq7aZr1KNbXpwFzqYpPeRYB0kZuptG1UmH0JyiV82PIuP2TvZQkPxhky
    LsFx2VcPrGNexvj2JsuY8ULq/Yp/qxaxOS18yijAkPeEGCNU1J1EfaWvpKbtn7yT
    g6fFB9l+dCIDCo0Zwz0knoHKUL2BCJJNNvclcPE5AoGAXCuMEjSk54OUXoKj355l
    NbbpnrGofy7Pmi9H7dKxgKiN7wonjhV9Rztrbsms9lD4Ab/B1CrIRz6Hp5si+bw/
    mDDboXmgEbNGMccxknye2p4S34R6RoERbNlXvor3Z46aWMP9Suqwa11WdklXQiaW
    wLC0RkGadfimQSxSGuFaJDE=
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    MIIDGzCCAgOgAwIBAgIUYkIzcxcGB4FBt1qTLXE9tOKNeMUwDQYJKoZIhvcNAQEL
    BQAwHTEbMBkGA1UEAwwSY2VwaC1yZ3cubG9jYWwuY29tMB4XDTI1MDYxNDE5MTEy
    MloXDTM1MDYxMjE5MTEyMlowHTEbMBkGA1UEAwwSY2VwaC1yZ3cubG9jYWwuY29t
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv6t83Tp0T0rEczpT9WdK
    wWCVJ/Vc2RfkZZ7eyDd6vuiK/4wm+o7TGD9QPiok3L/Dmk3a3uDsToyBRoitW2aR
    JdeqvqYShm5326Ya6bQlcKcO71d5+z48+e2sFzO9vEu6petibrSH6w1qjWGNBJzH
    ju8Ra13cuKMPHdxqG4bH4k3FN/J8ll2eUMu73eN5CRJTMW27Fya4TzuN8eoCQlnb
    yM7XY3sLRVtq6svHAz2isXF7m2ADpSVMzed3gHRsQuga+h1rMlZ/FZ7DyFEIoMEs
    zsegwGvUCo1SCIuOeKW9wvrHtUw93pdSYWeWQ2r+YNBafcwdQ3rZEd74e94sasHX
    UQIDAQABo1MwUTAdBgNVHQ4EFgQUbL6TyHoVR1jUBE+mT0ETcvJNwq0wHwYDVR0j
    BBgwFoAUbL6TyHoVR1jUBE+mT0ETcvJNwq0wDwYDVR0TAQH/BAUwAwEB/zANBgkq
    hkiG9w0BAQsFAAOCAQEAZ/8toy7FIUG4uq+SxP4dxcC/P/njpCklzoA5BGc8aEQ+
    M+g/0eTR60ib6HWXp2PtezQ5fK1mZLImSeuHCcdAXddEq0opXaS3wEMs8N27fDLU
    jMjilBhzDlp7YnxZ64YzF3HzP2qHbDwoJjz/MqFSovkFEb4m8RYZNl6t/5U8XSmx
    vxWdypbmmd+Zr07BQ1l1ldeGi0CD9gxSYK3exF6Gdr7G/J7vC8Up0xHKnaZSqKOH
    vP8e/WL7T+p0s0ypjAIR29M1E9XfULt8xNQc3KtiEcvAZbxE3HWG7vnp93S/42vA
    errp5uKlZdaOaA1OD0/nmrP36hz6RnuUqIF88p7NnQ==
    -----END CERTIFICATE-----
  ssl: true
  rgw_frontend_port: 443

5.3更新RGW配置

root@ubuntu01:~# ceph orch apply -i rgw.yaml
Scheduled rgw.default update...
root@ubuntu01:~# ceph orch ps | grep rgw
rgw.default.ubuntu01.lusoxe  ubuntu01  *:80              running (31m)    12s ago  31m     101M        -  18.2.4     2bc0b0f4375d  510eb15ca011  
rgw.default.ubuntu02.abhedc  ubuntu02  *:443             starting               -    -        -        -  <unknown>  <unknown>     <unknown>     
rgw.default.ubuntu02.nvamia  ubuntu02  *:80              running (31m)    13s ago  31m     106M        -  18.2.4     2bc0b0f4375d  4a733c6c4488  
rgw.default.ubuntu03.pvvalj  ubuntu03  *:443             starting               -    -        -        -  <unknown>  <unknown>     <unknown>     
rgw.default.ubuntu03.rkgoya  ubuntu03  *:80              running (31m)    13s ago  31m     101M        -  18.2.4     2bc0b0f4375d  d341d13d6bac  

5.4验证访问

在本地host添加域名解析

mbwng6ti.png

六、RadosGW 高可用
mbwnh6z6.png
6.1自定义https 端口与副本数

#修改默认端口并指定运行在 ceph1 和 ceph2 节点
root@ceph-1:/etc/ceph/rgw# cat > rgw.yaml << EOF
service_type: rgw
service_id: default
placement:
  hosts:
    - ceph-1
    - ceph-2
    - ceph-3
spec:
  rgw_frontend_ssl_certificate: |
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8EYtfCItzKsoy
    zh9AeiYMuJAebFaBkEpF00AYGvnviwOBUx8f4CjStnXAUtNq7nFrhTldai1B+pdL
    eZomzgfFTO6oN0tz6KBXEDJG+yoMqrce0RlGJH6i5ML1znWmWsVynU1xrqGC2D1J
    jIERsoyx+1vIuYHR8EBpKf7ldLYDqZ79bAEEj1ayzzPOIS4X3g9AAWo3EMCLRzCU
    ZY1GIfqXuPi2xMJKYfovXM1agU178qCqNlGFrjtAHOSYpmMssGM638Jh8ExaJxBU
    4UvKcxc54Efypancj6ZffgEx07A6tVFk4zQrFp+2vbYTkcs3tF5KrRBvN1ExDqsb
    fofCTI+7AgMBAAECggEAaiYE4giynLgkE/TfEsdevoNVZLaFRO+p3CtV28UuGJP/
    0HiX8qfUosm1QG3/QjV+8s7pB96r2LeVuVXTOd/D5wp7EZrUDYHZLgrINeQBYdDh
    NpWSjFKA33P6zj5PjStikkRSt713D6D5Ro/1MYXzf2l97pc1vMa7tB+t7Nio+vtE
    PCzTsRZynbNCY3UoIKfQlbA/fMqyayU05GAJyJT0kHl8M1H5PD5czJjUqztKQEv0
    aJGmXN77drBC/qznGfpTPaAi1l6Gh7eBBj8/7yWXDSyI3n7SSAz0e4eDjZRhBZrH
    hi2f6+xwpuTuOehUw0xo2rtJxl3o9qzNjwN05A8yoQKBgQDdOzuiAZtqBd7ERXZp
    sYev17tLuLpiCHQ5a5ljh4jVrP1/bh3mNiTnFMk3TwJLIwBPlo2Ugbd/vsl+Db3+
    EKDFTC2md5CaH04/1QSmFFjsHfN1ZoLdmedVntlR4Hzah44jNdWvHl0WYRjzfxcM
    I782oawPYm73J7oGboiEfgtW8wKBgQDZoBNxcvjFZ+0LO5ms+ymWKwTnPpwGhW3M
    D0DcPcF08GSnmyHvZoB51FG4GEIjMkWRpOX+pg2fxNjO0Y5QxS5vBg0A5KztDg4r
    Kdy+McCZIWjCeF9O0mvhIXOKLFdUMrfp+s6GqJCIoht8QkxUuMn0TM3eq3p/WWts
    xVCs/tMmGQKBgBSyPOLsCZECmZN8+BXtMMdnhDMSRgVzywOwKDpibI+ozlJEh/GI
    cS1ZCXXuI0XKMXZAnGAfPn5p58muGW8SOSgb901SdCmm8hgQoo2y65qzNppuC6IV
    ism8wZHiUWvUMJzkpWfrjEPSs5Xb9tkA4xuGRmVuDPl8Mu/1GTpj3EW3AoGBAMJI
    0pLZ3ZX+7fS1RMDViY7y4PHBR3Ha9ObUR0dYKrnHU1T+fhFIJTKehkYgAguB+fHI
    kTwB6u/TwOsC0lbxcj7T3BAMFwWbIrMOMG/r4tHSrb/PzuaDnKPkRU35wAz/KonM
    y0wUeNRCRN9uIM8SGdnsJ26/ECFZJzp3/Uo0RTUhAoGAG8X00lkMTiVHuAZmP7PO
    4lYfUQA8PZ6i/7A/SnHuwWI0MyWKLw3T/4mCdHyw9YwPshdVWCddY59L1GKxdzI5
    V87lNmdkH7l6jDm7IwY5KX0voZ8uLB1zQ9lIakQxPTj5ydO2lPsJGE8784suwAhY
    Y7UxYWWOAl7Pu0TfGXZjg+I=
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    MIIDGzCCAgOgAwIBAgIUN4U/CuGb78PO+vzw370d0hz1aBUwDQYJKoZIhvcNAQEL
    BQAwHTEbMBkGA1UEAwwSY2VwaC1yZ3cubG9jYWwuY29tMB4XDTI0MTIxNzA3MDAz
    M1oXDTM0MTIxNTA3MDAzM1owHTEbMBkGA1UEAwwSY2VwaC1yZ3cubG9jYWwuY29t
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBGLXwiLcyrKMs4fQHom
    DLiQHmxWgZBKRdNAGBr574sDgVMfH+Ao0rZ1wFLTau5xa4U5XWotQfqXS3maJs4H
    xUzuqDdLc+igVxAyRvsqDKq3HtEZRiR+ouTC9c51plrFcp1Nca6hgtg9SYyBEbKM
    sftbyLmB0fBAaSn+5XS2A6me/WwBBI9Wss8zziEuF94PQAFqNxDAi0cwlGWNRiH6
    l7j4tsTCSmH6L1zNWoFNe/KgqjZRha47QBzkmKZjLLBjOt/CYfBMWicQVOFLynMX
    OeBH8qWp3I+mX34BMdOwOrVRZOM0Kxaftr22E5HLN7ReSq0QbzdRMQ6rG36HwkyP
    uwIDAQABo1MwUTAdBgNVHQ4EFgQUUxgqlKlO+Pmvr+1QYv0bzf8BY4wwHwYDVR0j
    BBgwFoAUUxgqlKlO+Pmvr+1QYv0bzf8BY4wwDwYDVR0TAQH/BAUwAwEB/zANBgkq
    hkiG9w0BAQsFAAOCAQEAJf0D5Wy3BS9fUWqqgxLgvUSuK9EzfVHyyBeAzW+AYzus
    Iqv3KscFnJFkl8U7tfy0E/03z6LzA91Ok/6IvlsQA9w5agJF++nqNSatVbEin4Fr
    h4hu1HFMDFLkaQeGLcaHBgmMWOgK0DonitYEJZMbHBBYY5W7IzoZfduaOsJaXVoG
    rYCsoYlH2JHwIu3hXelzCLPfZhdBpvcgWIsQCnVy2n4y2WLRif0R+zPPZ4ZIz0qT
    en7C+vmvtP9SrpI9eIPUC3VAcTKxftvzyOHqBIB0+BzDa8lk0b4MMmaJkzt7Uq1k
    EJmfIFBAfER1wHb2vVPKd5/zi3h55T3D366M8yLx9Q==
    -----END CERTIFICATE-----
  ssl: true
  rgw_frontend_port: 8443
EOF
root@ceph-1:/etc/ceph/rgw# ceph orch apply -i rgw.yaml 
Scheduled rgw.default update...
root@ceph-1:/etc/ceph/rgw# ceph orch ps | grep rgw
rgw.default.ceph-1.rsdmtv  ceph-1  *:9443            running (29s)     23s ago  29s    87.6M        -  18.2.4   2bc0b0f4375d  c4d059ef4eeb  
rgw.default.ceph-2.hyhuzv  ceph-2  *:9443            running (29s)     13s ago  29s    88.8M        -  18.2.4   2bc0b0f4375d  ff7f86383ba1  
rgw.default.ceph-3.wnnkpd  ceph-3  *:9443            running (30s)     24s ago  30s    88.4M        -  18.2.4   2bc0b0f4375d  3d198beac816 

6.2HaProxy部署
以下操作在 ceph1、2、3 机器执行

安装haproxy
root@ceph-1:~# apt install haproxy -y
#修改配置文件
root@ceph-1:~# cat > /etc/haproxy/haproxy.cfg << EOF
# 开启管理员监控页面
listen admin_stats
    bind *:8888    # 监听的IP和端口号
    mode http      # 开启HTTP模式,stats功能需要
    stats enable
    stats refresh 30s   # 统计页面自动刷新时间
    stats uri /admin    # 访问的uri   ip:8888/admin
    stats realm haproxy
    stats auth admin:admin  # 认证用户名和密码
    stats hide-version   # 隐藏HAProxy的版本号
    stats admin if TRUE   # 管理界面,如果认证成功了,可通过webui管理节点
    timeout client 5s    # 客户端超时
    timeout connect 3s    # 连接超时
    timeout server 5s    # 后端服务器超时
# 配置前端监听
frontend main
    # 监听地址
    bind *:443
    # 匹配后端服务
    default_backend rgw
    # 客户端超时
    timeout client 5s
# 配置后端代理
backend rgw
    # 连接超时
    timeout connect 3s
    # 后端服务器超时
    timeout server 5s
    server  rgw1 192.168.10.91:9443 check
    server  rgw2 192.168.10.92:9443 check
    server  rgw3 192.168.10.93:9443 check
EOF

6.3启动服务

root@ceph-1:~# systemctl start haproxy
root@ceph-1:~# systemctl enable haproxy
Synchronizing state of haproxy.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable haproxy
root@ceph-1:~# ss -tunlp | grep haproxy
tcp     LISTEN   0        4096             0.0.0.0:443            0.0.0.0:*      users:(("haproxy",pid=61839,fd=7))                                             
tcp     LISTEN   0        4096             0.0.0.0:8888           0.0.0.0:*      users:(("haproxy",pid=61839,fd=6))

确认无误后 ceph-2 和 ceph-3 服务器同样的步骤配置。
mbwnkqu4.png

七、KeepAlived部署
以下操作在ceph-1、2、3 机器执行,设备网卡名称为ens33,VIP为192.168.10.90。
安装软件包

root@ceph-1:~# apt install keepalived -y

新增haproxy检测脚本

root@ceph-1:~# vim /etc/keepalived/check_port.sh
#!/bin/bash
# 检查指定端口是否正常
PORT=443
if netstat -tuln | grep -q ":${PORT}\b"; then
    echo "${PORT}端口正常: 服务正在监听"
    exit 0
else
    echo "${PORT}端口异常: 未发现监听服务"
    exit 1
fi
root@ceph-1:~# chmod u+x /etc/keepalived/check_port.sh

修改配置文件

root@ceph-1:/etc/keepalived# cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
  script_user root
  enable_script_security
} 

vrrp_script chk_port {
    script "/etc/keepalived/check_port.sh"   # 自定义检测脚本路径
    interval 1        # 检测间隔,单位为秒
    weight -2         # 如果检测失败,权重降低2
}

vrrp_instance VI_1 {
    state MASTER                    # 设置为master节点
    interface ens33        # 物理网卡名称
    virtual_router_id 51     # 虚拟路由ID,主备保持一致
    priority 100                    # 优先级,主大于备
    advert_int 1                    # 关播间隔
    authentication {            # 认证信息,主备一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.90/24    # 虚拟IP信息
    }
    track_script {
        chk_port     # 引用上面定义的脚本
    }
}
EOF

启动服务

root@ceph-1:/etc/keepalived# systemctl start keepalived.service
root@ceph-1:/etc/keepalived# systemctl enable keepalived.service
Synchronizing state of keepalived.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable keepalived
root@ceph-1:/etc/keepalived# ip a | grep 192.168.10.90
    inet 192.168.10.90/24 scope global secondary ens33

此时可以看到vip 192.168.10.90绑定到了 ceph-1服务器ens33 网卡上。
同样的操作配置 ceph-2服务器,配置文件如下:

global_defs {
  script_user root
  enable_script_security
}

vrrp_script chk_port {
    script "/etc/keepalived/check.sh"  
    interval 2      
    weight -2        
}

vrrp_instance VI_1 {
    state BACKUP # 主备类型
    interface ens33 
    virtual_router_id 51
    priority 99 # 优先级低于主
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.90/24
    }
    track_script {
        chk_port     # 引用上面定义的脚本
    }
}

ceph-3 配置如下

global_defs {
  script_user root
  enable_script_security
}

vrrp_script chk_port {
    script "/etc/keepalived/check.sh"  
    interval 2      
    weight -2        
}

vrrp_instance VI_1 {
    state BACKUP # 主备类型
    interface ens33 
    virtual_router_id 51
    priority 98 # 优先级低于主
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.90/24
    }
    track_script {
        chk_port     # 引用上面定义的脚本
    }
}

八、高可用测试
接下来停止 ceph-1服务,模拟异常故障,查看 ceph-2服务器,vip已经成功飘移过来

root@ceph-1:~# systemctl stop haproxy.service 
root@ceph-2:~# ip a | grep 192.168.10.90
    inet 192.168.10.90/24 scope global secondary ens33

访问vip的 443 端口,可正常提供服务
mbwnnwhr.png

0

评论 (0)

取消