一、集群安全組規則配置
CCE作為通用的容器平臺,安全組規則的設置適用于通用場景。集群在創建時將會自動為Master節點和Node節點分別創建一個安全組,其中Master節點的安全組名稱是: {集群名}-cce-control-{隨機ID} ;Node節點的安全組名稱是: {集群名}-cce-node-{隨機ID} 。使用CCE Turbo集群時會額外創建一個ENI的安全組,名為 {集群名}-cce-eni-{隨機ID} 。
用戶可根據安全需求,登錄CCE控制臺,單擊服務列表中的“網絡 > 虛擬私有云 VPC”,在網絡控制臺單擊“訪問控制 > 安全組”,找到CCE集群對應的安全組規則進行修改和加固。
如集群在創建時需要指定節點安全組,請參考集群自動創建的Node節點安全組規則放通指定端口,以保證集群中的正常網絡通信。
注意
安全組規則的 修改和刪除可能會影響集群的正常運行 ,請謹慎操作。如需修改安全組規則,請盡量避免對CCE運行依賴的端口規則進行修改。
Node節點安全組規則
入方向
集群自動創建Node節點的安全組名稱為 {集群名}-cce-node-{隨機ID} ,默認入方向規則如下圖所示, 源地址屬于本安全組的需全部放通 ,其余端口說明見下表。
VPC網絡模型Node節點默認安全組


VPC網絡模型Node節點安全組默認端口說明
| 端口 | 默認源地址 | 說明 | 是否可修改 | 修改建議 |
|---|---|---|---|---|
| UDP:全部TCP:全部 | VPC網段 | Node節點之間互訪、Node節點與Master節點互訪。 | 不建議修改 | 不涉及 |
| ICMP:全部 | Master節點網段 | Master節點訪問Node節點。 | 不建議修改 | 不涉及 |
| TCP:30000-32767UDP:30000-32767 | 所有IP地址 | 集群NodePort服務默認訪問端口范圍。 | 可修改 | 端口需對VPC網段、容器網段和ELB的網段放通。 |
| 全部 | 容器網段 | 節點與容器互訪。 | 不建議修改 | 不涉及 |
| 全部 | Node節點網段 | Node節點之間互訪。 | 不建議修改 | 不涉及 |
| TCP:22 | 所有IP地址 | 允許SSH遠程連接Linux彈性云服務器。 | 建議修改 | 不涉及 |
容器隧道網絡模型Node節點默認安全組


容器隧道網絡模型Node節點安全組默認端口說明
| 端口 | 默認源地址 | 說明 | 是否可修改 | 修改建議 |
|---|---|---|---|---|
| UDP:4789 | 所有IP地址 | 容器間網絡互訪。 | 不建議修改 | 不涉及 |
| TCP:10250 | master節點網段 | master的主動訪問node的kubelet(如執行kubectl exec {pod})。 | 不建議修改 | 不涉及 |
| TCP:30000-32767UDP:30000-32767 | 所有IP地址 | 集群NodePort服務默認訪問端口范圍。 | 可修改 | 端口需對VPC網段、容器網段和ELB的網段放通。 |
| TCP:22 | 所有IP地址 | 允許SSH遠程連接Linux彈性云服務器。 | 建議修改 | 不涉及 |
| 全部 | 本安全組和VPC網段 | 源地址屬于本安全組和VPC網段的需全部放通。 | 不建議修改 | 不涉及 |
出方向
對于 出方向規則 ,CCE創建的安全組默認全部放通,通常情況下不建議修改。如需加固出方向規則,請注意如下端口需要放通。
Node節點安全組出方向規則最小范圍
| 端口 | 放通地址段 | 說明 |
|---|---|---|
| UDP:53 | 子網的dns服務器 | 用于域名解析。 |
| UDP:4789(僅容器隧道網絡模型的集群需要) | 所有IP地址 | 容器間網絡互訪。 |
| TCP:5443 | Master節點網段 | master的kube-apiserver的監聽端口。 |
| TCP:5444 | VPC網段、容器網段 | kube-apiserver服務端口,提供k8s資源的生命周期管理。 |
| TCP:6443 | Master節點網段 | - |
| TCP:8445 | VPC網段 | Node節點存儲插件訪問Master節點。 |
| TCP:9443 | VPC網段 | Node節點網絡插件訪問Master節點。 |
Master節點安全組規則
Master節點的安全組名稱是為 {集群名}-cce-control-{隨機ID} ,默認入方向規則如下圖所示, 源地址屬于本安全組的需全部放通 ,其余端口說明見下表。
Master節點安全組規則


Master節點安全組默認端口說明
| 端口 | 默認源地址 | 說明 | 是否支持修改 | 修改建議 |
|---|---|---|---|---|
| TCP:5444 | VPC網段、容器網段 | kube-apiserver服務端口,提供k8s資源的生命周期管理。 | 不建議修改 | 不涉及 |
| UDP:4789(僅容器隧道網絡模型的集群需要) | 所有IP地址 | 容器間網絡互訪。 | 不建議修改 | 不涉及 |
| TCP:9443 | VPC網段 | Node節點網絡插件訪問Master節點。 | 不建議修改 | 不涉及 |
| TCP:5443 | 所有IP地址 | master的kube-apiserver的監聽端口。 | 可修改 | 端口需保留對VPC網段、容器網段和托管網格控制面網段放通。 |
| TCP:8445 | VPC網段 | Node節點存儲插件訪問Master節點。 | 不建議修改 | 不涉及 |
| 全部 | 本安全組和VPC網段 | 源地址屬于本安全組和VPC網段的需全部放通。 | 不建議修改 | 不涉及 |
說明
5443端口默認對所有網段放通,如果您需要對安全組做加固,請保留5443端口對198.19.128.0/20、198.19.160.0/20、198.19.176.0/20網段放通,以使用CloudShell功能。因為CloudShell基于VPCEP實現,當5443端口未放通198.19.128.0/20網段時將無法訪問集群。
二、 工作負載網絡異常時,如何定位排查?
排查思路
以下排查思路根據原因的出現概率進行排序,建議您從高頻率原因往低頻率原因排查,從而幫助您快速找到問題的原因。
如果解決完某個可能原因仍未解決問題,請繼續排查其他可能原因。
- 排查項一:容器+容器端口
- 排查項二:節點IP+節點端口
- 排查項三:負載均衡IP+端口
- 排查項四:NAT網關+端口
- 排查項五:檢查容器所在節點安全組是否放通
排查項一:容器+容器端口
在CCE控制臺界面或者使用kubectl命令查找pod的IP,然后登錄到集群內的節點或容器中,使用curl命令等方法手動調用接口,查看結果是否符合預期。
如果容器IP+端口不能訪問,建議登錄到業務容器內使用“127.0.0.1+端口”進行排查。
常見問題:
- 容器端口配置錯誤(容器內未監聽訪問端口)。
- URL不存在(容器內無相關路徑)。
- 服務異常(容器內的業務BUG)。
排查項二:節點IP+節點端口
只有發布為節點訪問(NodePort)或負載均衡(LoadBalancer )的服務才能通過節點IP+節點端口進行訪問。
- 節點訪問(NodePort)類型:
節點的訪問端口就是節點對外發布的端口。
- 負載均衡(LoadBalancer )類型:
負載均衡的節點端口通過“編輯YAML”可以查看。
如下圖所示:
nodePort: 30637為節點對外暴露的端口。targetPort: 80為Pod對外暴露的端口。port: 123為服務對外暴露的端口,負載均衡類型的服務同時使用該端口配置ELB的監聽器。


找到節點端口(nodePort)后,使用容器所在節點的IP地址+端口進行訪問,并查看結果是否符合預期。
常見問題:
- 節點的入方向對業務端口未放通。
- 節點配置了自定義路由,并且配置錯誤。
- pod的label與service的label不匹配(kubectl或API創建)。
排查項三:負載均衡IP+端口
如果使用負載均衡IP+端口不能訪問,但節點IP+端口可以訪問。
請排查:
- 相關端口或URL的后端服務器組是否符合預期。
- 節點上的安全組是否對ELB暴露了相關的協議或端口。
- 四層ELB的健康檢查是否開啟(未開啟的話,請開啟)。
- 七層ELB的訪問方式中使用的證書是否過期。
常見問題:
- 發布四層ELB時,如果客戶在界面未開啟健康檢查,ELB可能會將流量轉發到異常的節點。
- UDP協議的訪問,需要放通節點的ICMP協議。
- pod的label與service的label不匹配(kubectl或API創建)。
排查項四:NAT網關+端口
配置在NAT后端的服務器,通常不配置EIP,不然可能會出現網絡丟包等異常。
排查項五:檢查容器所在節點安全組是否放通
用戶可單擊服務列表中的“網絡 > 虛擬私有云 VPC”,在網絡控制臺單擊“訪問控制 > 安全組”,找到CCE集群對應的安全組規則進行修改和加固。
- CCE集群:
Node節點的安全組名稱是: {集群名}-cce-node-{隨機字符} 。
請排查:
- 從集群外訪問集群內負載時,來訪者的IP地址、端口、協議需在集群安全組的入方向規則中開放。
- 集群內的工作負載訪問外部時,訪問的地址、端口、協議需在集群安全組的出方向規則中開放。
更多安全組配置信息請參見集群安全組規則配置
三、 為什么容器無法連接互聯網?
當容器無法連接互聯網時,請排查容器所在節點能否連接互聯網。
排查項一:節點能否連接互聯網
步驟 1 登錄ECS控制臺。
步驟 2 查看節點對應的彈性云服務器是否已綁定彈性IP或者配置NAT網關。
如下圖,若彈性IP一欄有IP地址,表示已綁定彈性IP;若沒有,請為彈性云服務器綁定彈性IP。
節點是否已綁定彈性IP


排查項二:節點是否配置網絡ACL
步驟 1 登錄VPC控制臺。
步驟 2 單擊左側導航欄的“訪問控制 > 網絡ACL”。
步驟 3 排查節點所在集群的子網是否配置了網絡ACL,并限制了外部訪問。
四、VPC的子網無法刪除,怎么辦?
VPC的子網無法刪除可能是因為您在CCE的集群中使用了該VPC的子網,因此需要在CCE界面刪除相應的集群后,再刪除VPC的子網。

注意
刪除集群會將集群內的節點以及運行的工作負載和服務都銷毀,請謹慎操作。
不建議在ECS界面刪除CCE集群中的節點。
五、 如何修復出現故障的容器網卡?
容器的網卡出現故障,會導致容器不斷重啟,且該容器無法對外提供服務。可通過如下步驟修復出現故障的容器網卡:
操作步驟
步驟 1 執行如下命令,刪除故障容器的Pod。
kubectl delete pod {podName} -n {podNamespace}
其中:
- {podName} :替換為實際故障容器所屬pod名稱。
- {podNamespace} :替換為實際Pod所在的namespace名稱。
步驟 2 刪除故障容器的Pod之后系統自動為容器重建Pod,從而修復容器網卡。
六、 如何批量修改集群node節點安全組?
約束與限制
一個安全組關聯的實例數量建議不超過1000個,否則可能引起安全組性能下降。
操作步驟
步驟 1 登錄VPC控制臺,并在左上角選擇區域和項目。
步驟 2 在左側導航樹選擇“訪問控制 > 安全組”。
步驟 3 在安全組界面,單擊操作列的“管理實例”。
步驟 4 在“服務器”頁簽,并單擊“添加”。


步驟 5 勾選需要加入安全組的服務器,單擊“確定”。您也可以通過服務器的名稱、ID、私有IP地址、狀態、企業項目或標簽進行篩選。
通過修改左下角的單頁最大顯示條數,您可至多一次性添加20臺服務器至安全組中。
注意
加入新的安全組后,節點仍保留原安全組。如需移除,請單擊原安全組的“管理實例”按鈕,并勾選其中的節點服務器進行移除。

