国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

定制Kubernetes 密碼資源及金融機構應用實踐*

2020-07-19 14:29周恒磊
通信技術 2020年6期
關鍵詞:容器集群密碼

周恒磊

(中國銀聯(lián)信息總中心,上海 201201)

0 引言

(1)課題背景及研究意義

云計算是一種融合了多項計算機技術,以數據和處理能力為中心的密集型計算模式,近十年云計算技術已經從發(fā)展培育期步入快速成長期,越來越多的企業(yè)開始使用云計算服務。但傳統(tǒng)的云計算及虛擬化技術存在兩個主要的問題,一方面虛擬化管理軟件(Hypervisor)本身的資源消耗與磁盤IO 性能降低,另一方面虛擬機仍然還是一個獨立的操作系統(tǒng),而操作系統(tǒng)的運行仍會消耗系統(tǒng)資源,對很多類型的業(yè)務應用來說都顯得太重。Docker 作為一種新興的容器技術有效解決了傳統(tǒng)云計算與虛擬機技術存在的資源利用率低、軟件堆棧環(huán)境不一致等問題,相比傳統(tǒng)虛擬化方案,具有更輕量、易于移植、環(huán)境一致性等優(yōu)勢。將Docker 應用于具體業(yè)務實現時面臨的編排、管理和調度等各方面困難,迫切需要一套容器管理系統(tǒng),Kubernetes 作為一種容器集群管理系統(tǒng)的佼佼者,在業(yè)界得到廣泛應用。容器虛擬化技術以其輕便、靈活和快速部署等特性對傳統(tǒng)的基于虛擬機的虛擬化技術帶來了顛覆性的挑戰(zhàn),正在改變著基礎設施即服務(IaaS)平臺和平臺即服務(PaaS)平臺的架構和實現[1]。

本文中云密碼機被部署到Kubernetes 容器集群系統(tǒng)中,在將云密碼機部署到Kubernetes 集群架構的過程中,scheduler 組件進行資源調度主要以CPU、內存、磁盤作為調度指標,并未考慮密碼資源,導致集群系統(tǒng)負載不均衡,運行效率受到影響,本文將研究怎么把密碼資源作為定制資源擴展到Kubernetes 系統(tǒng)中以實現密碼資源的動態(tài)分配與負載均衡,提高系統(tǒng)運行效率。

(2)金融機構業(yè)務系統(tǒng)發(fā)展現狀

云計算是IT 基礎設施的新型交付與使用模式,它以虛擬化技術為基礎,具備彈性擴展、動態(tài)分配、資源共享、隨時獲取等新型特點,與金融機構業(yè)務互聯(lián)網模式轉型契合。國內金融機構在過去幾年中跟蹤國內外云計算發(fā)展趨勢,開展相應前瞻性技術研究,時至今日已經規(guī)?;ㄔO應用,有效提升了金融業(yè)務部署上線效率,大大簡化了IT 運維人員的操作,也為金融業(yè)務的開展與擴大提供了強大的技術支撐。發(fā)展金融云業(yè)務,有以下幾點優(yōu)勢:

成本投入降低,使用云計算服務,比購買專用的物理硬件要便宜得多,同時降低了IT 的硬件和運維成本,比如原來硬件的高可用性,通過軟件和運維工作來彌補。

業(yè)務比較靈活,云計算給企業(yè)帶來更大的靈活性,企業(yè)根據自身的狀況來決定是否需要增加服務,根據自己的發(fā)展狀況,選擇性地增加服務,使資源的利用性最大化。

便于運維管理,傳統(tǒng)的企業(yè)IT 架構,需要大量技術人員運行、維護,還有應對網絡安全的威脅,這些日常成本是非常高的。云技術自身的特性使得技術人員不必再為每臺終端設備安裝解決方案,服務項目也將自動獲得更新。

隨著云計算進入Cloud 2.0 階段,在ABC(AI人工智能、Big Data 大數據、Cloud Computing 云計算)與產業(yè)深度融合的大趨勢下,金融業(yè)務體系的日趨多元化、終端智能化,對服務云化的需求迫在眉睫。對銀行業(yè)金融機構來說,金融安全的意義十分重大,銀行卡密碼、賬戶密碼、網站密碼……是與每個人生活息息相關的事情。對個人而言,密碼的重要性不言喻。而對企業(yè)而言,密碼不僅僅是簡單的一串數字,或者一個U 盾,一張密碼卡,幾臺密碼設備那么簡單。密碼安全的背后,可能是一系列復雜的軟硬件基礎設施建設與服務。傳統(tǒng)密碼機為保證金融業(yè)務安全提供服務,但已不能滿足金融服務云化的需求,云密碼機應運而生,云密碼服務將密碼服務與云計算平臺進行結合,通過調度加密機集群,根據密碼資源飽和度進行動態(tài)資源分配,使密碼運算速度大大提高,Kubernetes 集群系統(tǒng)也使得密碼服務的穩(wěn)定性與容錯性得到極大提升,更好的為用戶提供集中化、虛擬化、透明化的密碼運算服務。

(3)本文研究思路及主要內容

本文的主要研究目標是將云密碼機作為定制資源添加到Kubernetes 集群系統(tǒng)中,以實現密碼資源的按需分配與動態(tài)調整,最后和某金融機構業(yè)務結合提升金融云服務質量。因此,研究內容主要包括以下幾個方面:

首先分析Kubernetes 架構,各組件的功能,及云密碼機關鍵技術與特點,接著說明Kubernetes 定制資源(Custom Resource)以及怎么定制、使用密碼資源,最后展示在某金融機構的應用示例。

第一章介紹Kubernetes 與云密碼機核心概念,包括Kubernetes 架構與云密碼機關鍵技術。

第二章說明Kubernetes 定制資源及密碼資源的定制和使用。

第三章展示密碼資源在某金融機構業(yè)務中的應用。

第四章進行總結與展望。

1 Kubernetes 與云密碼機

1.1 Kubernetes 核心概念與系統(tǒng)架構

1.1.1 Kubernetes 介紹與基本架構

Kubernetes 是谷歌公司開源的容器集群管理系統(tǒng),其前身為谷歌內部的Borg 系統(tǒng)。Kubernetes 是一個全新的分布式架構領先方案,構建在以Docker為代表的容器技術之上,實現自動部署、擴展和管理容器化的應用程序以及資源利用率的最大化。Kubernetes 發(fā)展總共只有短短幾年,但由于其吸收了Borg 多年來的經驗與教訓,憑借其優(yōu)秀的設計理念、強大的管理功能已經迅速成為云計算領域主流的容器集群管理系統(tǒng),甚至也能容納進OpenStack生態(tài)圈。

Kubernetes 基于Docker 容器技術,但同時也支持其他底層容器技術,實現了跨節(jié)點Docker 容器的管理,并為容器化應用開發(fā)測試、部署、運維等各個環(huán)節(jié)提供完備的支持。Kubernetes 作為一個開放的平臺,不受編程語言的限制,任何語言編寫的應用都能非常方便地映射為Kubernetes 的Service,并通過標準TCP 通信協(xié)議進行交互。

Kubernetes 對現有的編程語言、編程框架、中間件沒有任何入侵性,因此現有系統(tǒng)可以方便地遷移到Kubernetes 平臺上。構建在Kubernetes 的系統(tǒng)不僅可以獨立運行在物理機、虛擬機集群或者托管在公有云中,同時也能部署在企業(yè)的私有云上。

Kubernetes 基本架構如圖1 所示。

圖1 Kubernetes 基本架構Kubernetes 核心概念

為了方便管理容器化應用,Kubernetes 在Docker容器的基礎上抽象出一些概念,這些概念在Kubernetes 中以資源對象的形式存在。Kubernetes使用資源對象描述集群的期望狀態(tài)。它提供了很多默認資源類型,如Pod、Deployment、Service、Volume 等一系列資源,能夠滿足大多數日常系統(tǒng)部署和管理需求。幾乎所有的資源對象都可以通過Kubernetes 提供的Kubectl 工具控制。

同時,在一些特殊的需求場景下,這些現有資源類型滿足不了應用需求,需要使用Kubernetes的可擴展資源特性,將容器化應用所需的其他資源抽象為Kubernetes 的自定義擴展資源(Custom Resource Definition)。

(1)Master

Master 是Kubernetes 中最關鍵的集群控制節(jié)點,用來負責整個集群的管理和控制,基本上所有的控制命令都發(fā)送給它,是整個集群的核心。通常需要單獨的服務器部署,生產環(huán)境中通常會部署多個。Master 節(jié)點上運行著API Server、Controller Manager、Scheduler 等重要進程。

(2)Node

除了Master,Kubernetes 集群中其他機器都為Node 節(jié)點,每個Node 上可運行多個Pod,同時Node節(jié)點支持動態(tài)擴容,可以在運行期間增加到集群中,實現負載均衡。Node 節(jié)點上運行著Kubelet、Kubeproxy、Docker Engine 等關鍵進程。

(3)Pod

Pod 是Kubernetes 中最基本也是最重要的概念,一個Pod 包含一個或多個緊密相關的用戶業(yè)務容器,是Kubernetes 集群中調度的最小單位。每個Pod 具有一個特殊的根容器Pause 容器,Pause 容器的鏡像屬于Kubernetes 平臺,它的狀態(tài)代表整個容器組的狀態(tài)。

(4)Label

Label 用于識別對象,是一種(key,value)類型的鍵值對。用戶在定義任何資源對象時都可以為其指定一個或多個Label,通過給指定的對象捆綁一個或多個Label實現多維度的資源分組管理功能,從而靈活、方便地進行資源分配、調度、配置、部署等工作。

(5)Replication Controller

Replication Controller (RC)由三部分組成:期望副本數、篩選Pod 所需的Label Selector 以及創(chuàng)建新副本需要的模板,用于控制Pod 副本數量始終達到期望值。定義一個RC 并提交到Kubernetes 集群后,系統(tǒng)會定期檢查目標Pod 當前的存活數量。通過RC,Kubernetes 實現了用戶應用集群的高可用性,并且大大減少了手工運維工作。

(6)Service

Service 相當于微服務架構中的一個“微服務”,是Kubernetes 中最核心的資源對象,它是一組Pod提供服務的抽象。Service 代表一個服務的訪問入口,用戶或其他服務可通過這個入口訪問其抽象的Pod,與其后端的Pod 之間通過Label 實現連接,而Replication Controller 控制Pod 副本數以保障服務的質量達到期望標準。

1.1.2 Kubernetes 特性與功能

(1)自動伸縮

集群中節(jié)點和運行中Pod 的數量能夠動態(tài)調整負載,可自動解決業(yè)務高峰與閑暇時服務性能問題,在必要時根據不同情形自動地擴容集群,并在不需要時縮容,實現集群動態(tài)的彈性伸縮[2]。

(2)負載均衡

支持通過負載均衡器動態(tài)為每個Node 分配工作負載,當某個Node 負載較高時,其上的工作負載會自動分配轉移到其他節(jié)點,并通過proxy 配合cloud provider 來適應不同的應用場景[3]。

(3)資源監(jiān)控和日志記錄

Master 節(jié)點會獲知每個Node 的資源使用情況,根據現有資源實現高效均衡的資源調度策略。同時,Kubernetes 提供給用戶各個級別的資源詳細使用信息,使用戶深入地了解應用的執(zhí)行情況。

(4)快速部署、擴展應用

容器占用資源少、部署快,每個應用可以被打包成一個容器鏡像,不需要與其余的應用堆棧組合,也不依賴于生產環(huán)境基礎結構,這使得從研發(fā)到測試、生產能提供一致環(huán)境。同時容器比虛機更輕量、更“透明”,更便于監(jiān)控和管理。

1.2 云密碼機特點及關鍵技術

1.2.1 云密碼機介紹與產品特點

云密碼機是以現代密碼技術為核心,具有物理安全保護措施,具備完善密鑰管理機制的硬件設備。該密碼機采用虛擬化技術,在一臺密碼機中按需生成多臺虛擬密碼機Virtual Security Module(以下簡稱VSM),多臺VSM 可組成集群,VSM 或VSM 集群對外提供與傳統(tǒng)密碼機一致的密鑰管理和密碼運算服務[4],同時,云密碼機采用安全隔離技術,保障各VSM 之間密鑰的安全隔離屬性。

云密碼機可按需將VSM分配給業(yè)務系統(tǒng)使用,并可彈性調整VSM 的性能,從而實現密碼計算資源的集約利用、動態(tài)伸縮,以及密碼設備的有效管理和維護,滿足云計算環(huán)境、傳統(tǒng)計算環(huán)境中數據加密保護、金融支付、密鑰管理及身份認證等安全需求。

云密碼機可廣泛應用于各級黨政單位,以及互聯(lián)網、金融、能源等行業(yè),可在云計算環(huán)境、傳統(tǒng)計算環(huán)境中為用戶提供密鑰安全管理、安全密碼運算等功能。云密碼機特色主要有:

(1)高可用性與智能化集群

支持VSM 集群、負載均衡,提供高可用性的密碼服務,保障用戶業(yè)務的連續(xù)性。VSM 集群內部實現了智能化配置,只需在創(chuàng)建VSM時設置集群名,VSM 即可自動組成集群。

(2)安全合規(guī)性

云密碼機采用國家密碼管理局批準的硬件密碼芯片實現密碼算法,采用多路物理噪聲源產生高質量的隨機數。采用防拆、防撬結構設計,利用全密封機殼、物理鎖控制開啟面板等技術為密鑰的管理提供了強有力的保護。采用安全隔離技術實現各VSM 密鑰在存儲和使用過程中的安全,并支持管理通道和業(yè)務通道的安全保護,全方位保護用戶在云計算環(huán)境中的密鑰和密碼運算安全。

(3)彈性密碼計算

云密碼機也可根據應用的需求動態(tài)伸縮、按需調配資源,同時應用所需的密碼功能也應能按需動態(tài)加載,主要體現在資源集群伸縮與訪問控制自動配置方面。通過智能云監(jiān)控技術,對密碼服務次數、加密服務器CPU/內存硬件性能等指標進行統(tǒng)計,結合智能決策算法確認當前云密碼機集群與服務的繁忙程度。當業(yè)務繁忙程度過高時,通知云密碼機管理程序,自動調度空閑云密碼機池資源。相反,當業(yè)務繁忙程度降低后,也將根據智能算法自動回收過剩資源。

(4)全業(yè)務支持

支持數字簽名、數據加密、身份認證等應用安全功能,可滿足多種安全需求。云密碼機的重要特點之一就是“軟件定義”,內部可運行多種類型不同版本的VSM,從而適應不同業(yè)務需求的、隨應用變化的、用戶自定義的擴展密碼服務,無需密碼機軟硬件升級換代,即可滿足不同業(yè)務、不同用戶的差異化特色化需求和應用業(yè)務擴展。

1.2.2 云密碼機關鍵技術

云密碼機是一臺硬件服務器,對外提供VSM,VSM 以集群的形態(tài)存在,由Kubernetes 的Kubeproxy 實現VSM 集群的負載均衡,由Kubernetes 的Service 對外提供密碼服務。其關鍵技術包括集群技術、自治系統(tǒng)技術等。

(1)集群技術

多個VSM 可組成集群,為業(yè)務系統(tǒng)提供可橫向擴展的高性能密碼服務,同時也保證了密碼服務的高可用性。VSM 集群中自動實現密鑰和配置數據同步,對任何一臺VSM 進行密鑰操作或配置操作,均會實時同步到集群中的其他VSM 中,大大簡化VSM 集群的管理功能[5]。

(2)自治系統(tǒng)技術

VSM 集群內部實現了自治系統(tǒng)技術,通過該技術,無需用戶介入配置,VSM 集群內部能自動發(fā)現各個VSM 節(jié)點,并自動組成集群。

2 定制密碼資源

2.1 Kubernetes 定制資源

2.1.1 定制資源(Custom Resources)

定制資源不是Kubernetes 的內置資源,而是基于Kubernetes API 擴展的資源。為滿足不同應用業(yè)務環(huán)境下對平臺的一些特殊需求,Kubernetes 允許用戶創(chuàng)建定制資源。通過動態(tài)注冊,定制資源可在處于運行狀態(tài)的群集中顯示和消失,集群管理員也可獨立于集群本身來更新定制資源。添加定制資源后,用戶可使用Kubectl 創(chuàng)建和訪問其對象,就像使用Pods 之類的內置資源一樣。

2.1.2 定制控制器(Custom controllers)

定制資源只是通過json 或yaml 描述語句存儲和檢索結構化數據,只有在與定制控制器結合后才能成為真正的聲明性API。聲明性API 可以聲明或指定所需的資源狀態(tài),并保持Kubernetes 對象的當前狀態(tài)與所需狀態(tài)同步。簡單來說,定制控制器將定制資源的結構化數據解釋為用戶期望狀態(tài)的記錄,并不斷采取行動來實現和維持該狀態(tài)。

定制控制器的使用方便,用戶可在運行的集群上部署和更新定制控制器,這與集群自身的生命周期無關。定制控制器也可用于內置資源,不過與定制資源結合使用時更有效。

2.1.3 定制資源添加方法

Kubernetes 提供了兩種方式添加定制資源:

(1)Custom Resource Definitions (CRDs):更易用,無需編碼,但缺乏靈活性。

(2)API Aggregation:需要編碼,允許通過聚合層的方式提供更定制化的實現。

2.1.4 訪問定制資源

Kubernetes 提供了4 種訪問定制資源的方式:

(1)Kubectl;

(2)Kubernetes 動態(tài)客戶端;

(3)資源定制者編寫的REST 客戶端;

(4)使用Kubernetes 客戶端生成工具生成的客戶端。

2.2 工作原理

client-go 是一個調用Kubernetes 集群資源對象API 的客戶端,可通過client-go 實現對Kubernetes集群中資源對象的增刪改查等操作。大部分對Kubernetes 進行前置API 封裝的二次開發(fā)都通過client-go 第三方包來實現。

圖2 展示了client-go 庫各組件如何工作以及同Custom Controller 的交互。

從圖2 中可以看到幾個核心組件以及交互流程,上面是client-go 組件,下面是定制控制器組件,各組件作用介紹如表1 所示。

圖2 client-go 庫與Custom Controller 交互過程

表1 client-go 庫與Custom Controller 組件說明

2.3 定制和使用密碼資源

在Kubernetes 中通過CRDs 添加定制密碼資源。首先創(chuàng)建一個定制密碼資源的CRD,Kubernetes API 服務器會為CRD 的每個版本創(chuàng)建一個新的RESTful 資源路徑。然后創(chuàng)建一個新的命名空間(底層依賴于同一個物理集群的虛擬集群)的RESTful API 端點,使用該端點的URL 可以創(chuàng)建和管理定制密碼資源對象,這些對象會受到創(chuàng)建CRD 時編寫的規(guī)則的定時監(jiān)管。

通過client-go 庫,編寫定制密碼資源的實現chsm-ext 庫。chsm-ext 庫有以下的信息:

API Server 的地址以及連接API Server 的認證信息。

Kubernetes API resource 的group 和version,以及結構體的定義。

控制序列化與反序列化API Server 的結果的序列化器(serializer)。

部署chsm-ext 庫到Kubernetes,在Kubernetes中根據CRD 對象資源創(chuàng)建出來的RESTful API 創(chuàng)建密碼資源對象。

用chsm-ext 庫提供的信息去API Server Watch/List 定制密碼資源。Reflector 通過檢測Kubernetes API 來跟蹤該定制密碼資源的變化,一旦發(fā)現有變化,就將該對象存儲到Delta Fifo queue 隊列中。Informer 循環(huán)取出該對象,Indexer 為此對象創(chuàng)建索引,將對象以及它的Key 存入安全區(qū)域,同時觸發(fā)Callback 回調函數,并將變更的對象Key 信息放入到工作隊列中,此時定制控制器的Process Item 會獲取工作隊列里的Key,并從Indexer 中獲取Key 對應的對象,從而進行相關的業(yè)務處理。

在云密碼機部署kubelet 組件和kube-proxy 組件,Master 審批Node 加入集群。在kubelet 創(chuàng)建時就已經創(chuàng)建了節(jié)點狀態(tài)的收集方法,通過pkg/kubelet/kubelet_node_status.go 里 的tryUpdateNodeStatus 方 法實現密碼資源信息的定期上報。

在Kubernetes 中,在創(chuàng)建VSM deployment 時,聲明對密碼資源的要求。Kubernetes 調度器根據聲明中密碼資源及其他資源的需求調度VSM POD 到密碼資源能夠滿足需求的云密碼機中。云密碼機會定期上報密碼資源的使用情況,Kubernetes 調度器能根據最新的資源使用情況限制新VSM 的部署或者刪除多余的VSM。

3 定制密碼資源在某金融機構的應用

定制后的密碼資源可用于金融機構現有的私有云環(huán)境中,為多個業(yè)務系統(tǒng)提供高性能、高可靠、按需分配的密碼服務。同時,云密碼機統(tǒng)一接入云管理平臺,實現密碼資源的云化管理,簡化管理過程。

云密碼機被部署到Kubernetes 集群中,用戶根據每個業(yè)務系統(tǒng)的業(yè)務需求,使用密碼資源數量作為度量指標,為其建立相應的VSM Deployment,Deployment 中多副本VSM POD 自動組成集群,為業(yè)務系統(tǒng)提供自動化、高可用的密碼服務,其應用場景如圖3 所示。

云密碼機會監(jiān)控在其上運行的每個VSM POD的狀態(tài)并定制上報Kubernetes,當VSM POD 出現不可恢復故障時,Kubernetes 會阻斷到該VSM POD 的交易,然后重新創(chuàng)建一臺VSM POD,新創(chuàng)建的VSM POD 可自動加入集群并為業(yè)務系統(tǒng)提供交易服務。

圖3 定制密碼資源在某金融機構的應用場景

針對一些需彈性密碼服務的業(yè)務系統(tǒng),例如高峰時段的交易是平時交易數倍的業(yè)務,用戶為這些業(yè)務系統(tǒng)的VSM deployment 建立HPA(Horizontal Pod Autoscaler,水平POD 自動伸縮器),該HPA根據云密碼機上報的VSM POD 密碼資源的使用情況,自動對VSM deployment 進行伸縮。當VSM deployment 中所有VSM POD 的密碼資源占用超過一定閾值后,HPA 會自動在VSM deployment 增加副本數;當VSM deployment 中所有VSM POD 的密碼資源占用低于一定閥值后,HPA 會自動在VSM deployment 減少副本數。通過該機制,既保證了高峰時段的高性能密碼需求,也能在低峰時段減少密碼資源占用,將更多密碼資源交給其他業(yè)務系統(tǒng)。

通過在Kubernetes 中定制密碼資源并使用密碼資源作為度量調度云密碼機,具有以下幾點優(yōu)勢。

響應速度更快:相比傳統(tǒng)密碼服務,云密碼機部署在分布式環(huán)境下,業(yè)務處理速度明顯加快,這也是云服務的優(yōu)勢所在。

高可用:當集群中的某個 VSM 發(fā)生故障時,系統(tǒng)可以將其上的業(yè)務自動進行遷移,相比與傳統(tǒng)密碼服務具有更高的容錯性。

按需分配:系統(tǒng)可根據需要分配 VSM 集群,以達到資源利用性最大化。

動態(tài)調整:系統(tǒng)可根據密碼資源的使用情況,動態(tài)的增加或減少 VSM 數量,既滿足高峰時段需求,又能節(jié)約密碼資源使用,節(jié)能減排。

4 總結與展望

服務云化和提高網絡安全性是大勢所趨,云密碼機是順應潮流誕生的產品,它不僅能接下傳統(tǒng)密碼機承擔的安全任務,還能進一步擴展提升,有廣闊的市場前景。以目前云計算熱門的 Kubernetes 平臺為例,Kubernetes 可通過定制密碼資源實現密碼服務云化和集群化,提供良好的彈性密碼服務。未來,可基于此方法將云化業(yè)務推廣到更多傳統(tǒng)金融業(yè)務中,進一步滿足金融云計算網絡體系架構未來的發(fā)展需求。

猜你喜歡
容器集群密碼
密碼里的愛
容器倒置后壓力壓強如何變
難以置信的事情
海上小型無人機集群的反制裝備需求與應對之策研究
培育世界級汽車產業(yè)集群
密碼抗倭立奇功
一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設計
勤快又呆萌的集群機器人
密碼藏在何處
取米