KubernetesクラスタはVPCマルチルーティングテーブルをサポートする
5060 ワード
背景
KubernetesはCloudProvider(CCMとも呼ばれる)コンポーネントを介してVPCルーティングテーブルに適切なルートを追加し、クラスタ内のPod間のネットワーク接続を貫通する.最近、VPCは複数のルーティングテーブルのサポート能力を発表し、ユーザーがECSに関連するどのルーティングテーブルを自分で選択できるようにし、ユーザーに豊富なルーティング管理能力を提供した.CCMの以前のバージョンではVPCシングルルーティングテーブルのみのサポートが提供されていたため、マルチルーティングテーブルサポートを使用するために、CCMミラーを
ぜんちじょうけん
コンテナサービスコンソールで作成したk 8 sクラスタが必要です.コンテナサービスコンソールからk 8 sクラスタを作成します.リファレンス
CloudProviderコンポーネントの構成
マルチルーティング・テーブル・サポートを構成するには、CCM配備ファイルを次のように変更する必要があります. cloud-configのConfigMapを作成します.その中の${ROUTE_TABLES_IDS}をVPCルーティングテーブルidに置き換え、カンマで区切られた複数のルーティングテーブルリストをサポートします.例: コマンドライン
2). cloud-configボリュームを参照します.
3). ミラーバージョンを
保存を終了します.CCMのPodが自動的に更新されていない場合は、手動でCCM Podを削除し、強制的に更新してみてください.構成完了後のCCM配備yamlファイルは添付ファイルを参照してください.この時点で、CCMはVPCマルチルーティングテーブルの機能をサポートするように構成できます.
添付ファイル:サンプルCCM配置.
KubernetesはCloudProvider(CCMとも呼ばれる)コンポーネントを介してVPCルーティングテーブルに適切なルートを追加し、クラスタ内のPod間のネットワーク接続を貫通する.最近、VPCは複数のルーティングテーブルのサポート能力を発表し、ユーザーがECSに関連するどのルーティングテーブルを自分で選択できるようにし、ユーザーに豊富なルーティング管理能力を提供した.CCMの以前のバージョンではVPCシングルルーティングテーブルのみのサポートが提供されていたため、マルチルーティングテーブルサポートを使用するために、CCMミラーを
registry.cn-hangzhou.aliyuncs.com/acs/cloud-controller-manager-amd64:v1.9.3.86-g4454991-aliyun
にアップグレードする必要があります.また、CCMは、--cloud-config
プロファイル(routeTable)を介して、どのルーティングテーブルを使用する必要があるかを指定する.ぜんちじょうけん
コンテナサービスコンソールで作成したk 8 sクラスタが必要です.コンテナサービスコンソールからk 8 sクラスタを作成します.リファレンス
CloudProviderコンポーネントの構成
マルチルーティング・テーブル・サポートを構成するには、CCM配備ファイルを次のように変更する必要があります.
vtb-t4n7k6u3m0n8407o7k1t7,vtb-t4n7k6u3m0n8407999999
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-config
namespace: kube-system
data:
cloud-config.conf: |-
{
"Global": {
"routeTableIDs": "${ROUTE_TABLES_IDS}"
}
}
kubectl edit ds -n kube-system cloud-controller-manager
を使用してCCM配備ファイルを修正します.1)を追加します.Volumeは、作成したばかりのcloud-config ConfigMapを参照すると宣言した. volumes:
- name: cloud-config
configMap:
name: cloud-config
items:
- key: cloud-config.conf
path: cloud-config.conf
2). cloud-configボリュームを参照します.
volumeMounts:
- name: cloud-config
mountPath: /etc/kubernetes/config
3). ミラーバージョンを
v1.9.3.86-g4454991-aliyun
)に変更する.CCM起動パラメータを修正する、- --cloud-config=/etc/kubernetes/config/cloud-config.conf
)を追加する./etc/kubernetsボリュームのreadyOnlyマウントプロパティをキャンセルします.すなわちreadOnly: true
を削除する.次のようになります. volumeMounts:
- mountPath: /etc/kubernetes/
name: k8s
保存を終了します.CCMのPodが自動的に更新されていない場合は、手動でCCM Podを削除し、強制的に更新してみてください.構成完了後のCCM配備yamlファイルは添付ファイルを参照してください.この時点で、CCMはVPCマルチルーティングテーブルの機能をサポートするように構成できます.
添付ファイル:サンプルCCM配置.
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-config
namespace: kube-system
data:
cloud-config.conf: |-
{
Global: {
"routeTableIDs": "${ROUTE_TABLES_IDS}"
}
}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: cloud-controller-manager
tier: control-plane
name: cloud-controller-manager
namespace: kube-system
spec:
revisionHistoryLimit: 10
selector:
matchLabels:
app: cloud-controller-manager
tier: control-plane
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
creationTimestamp: null
labels:
app: cloud-controller-manager
tier: control-plane
spec:
containers:
- command:
- /cloud-controller-manager
- --kubeconfig=/etc/kubernetes/cloud-controller-manager.conf
- --address=127.0.0.1
- --allow-untagged-cloud=true
- --leader-elect=true
- --cloud-provider=alicloud
- --allocate-node-cidrs=true
- --cluster-cidr=${CLUSTER_CIDR}
- --use-service-account-credentials=true
- --route-reconciliation-period=3m
- --v=5
- --cloud-config=/etc/kubernetes/config/cloud-config.conf
- --feature-gates=ServiceNodeExclusion=true
image: registry.cn-hangzhou.aliyuncs.com/acs/cloud-controller-manager-amd64:v1.9.3.86-g4454991-aliyun
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 8
httpGet:
host: 127.0.0.1
path: /healthz
port: 10253
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 15
name: cloud-controller-manager
volumeMounts:
- mountPath: /etc/kubernetes/
name: k8s
- mountPath: /etc/ssl/certs
name: certs
- mountPath: /etc/pki
name: pki
- name: cloud-config
mountPath: /etc/kubernetes/config
dnsPolicy: ClusterFirst
hostNetwork: true
nodeSelector:
node-role.kubernetes.io/master: ""
restartPolicy: Always
serviceAccount: cloud-controller-manager
serviceAccountName: cloud-controller-manager
tolerations:
- operator: Exists
volumes:
- hostPath:
path: /etc/kubernetes
type: ""
name: k8s
- hostPath:
path: /etc/ssl/certs
type: ""
name: certs
- hostPath:
path: /etc/pki
type: ""
name: pki
- name: cloud-config
configMap:
name: cloud-config
items:
- key: cloud-config.conf
path: cloud-config.conf
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate