kubernets ingress增加許可權HTTP-AUTH認證
阿新 • • 發佈:2018-12-12
當使用ingress的方式做Web服務的反向代理時,有時會需要增加對反向頁面的許可權認證(例如:反向代理到kibana頁面時),還好Kubernets非常強大,這麼簡單的特性當然也是支援的,主要依靠secret和註解方式來實現。
第一步,建立賬號密碼檔案
這裡需要使用到密碼檔案生成工具htpasswd,在ubuntu下可以使用以下命令進行安裝:
1 | sudoapt-getinstallapache2-utils |
隨後使用htpasswd命令建立密碼檔案auth,以及兩個使用者user1和user2:
12345678910111213 | $htpasswd-cauthuser1Newpassword:<bar>New password:Re-type new password:Adding password for user user1$ htpasswd auth user22nd user:htpasswd auth user2New password: <bar>Newpassword:Re-typenewpassword:Addingpasswordforuseruser2 |
第二步,建立kubernets secret
12 | kubectl-n<namespace>createsecretgenericbasic-auth--from-file=authsecret"basic-auth"created |
第三步,建立ingress配置檔案
123456789101112131415161718192021 | # ingress.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata:name: ingress-with-authannotations:# type of authenticationingress.kubernetes.io/auth-type: basic# name of the secret that contains the user/password definitionsingress.kubernetes.io/auth-secret: basic-auth# message to display with an appropiate context why the authentication is requiredingress.kubernetes.io/auth-realm: "Authentication Required - foo"spec:rules:- host: foo.bar.comhttp:paths:- path: /backend:serviceName: echoheadersservicePort: 80 |
參考連結: