המשאב AWSManagementServiceמכיל מידע על ההגדרות של שירות הניהול של GKE ב-AWS.
לפני שיוצרים את שירות הניהול, מגדירים קובץ YAML בשם anthos-gke.yaml. הכלי anthos-gke משתמש בהגדרה כשיוצרים את שירות הניהול.
התוכן של קובץ anthos-gke.yaml תלוי בשיטה שבה משתמשים כדי ליצור ענן וירטואלי פרטי (VPC) ייעודי ב-AWS או כדי להשתמש בVPC קיים ב-AWS.anthos-gke
VPC ייעודי
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
dedicatedVPC:
vpcCIDRBlock: VPC_CIDR_BLOCK
availabilityZones:
- ZONE_1
- ZONE_2
- ZONE_3
privateSubnetCIDRBlocks:
- PRIVATE_CIDR_BLOCK_1
- PRIVATE_CIDR_BLOCK_2
- PRIVATE_CIDR_BLOCK_3
publicSubnetCIDRBlocks:
- PUBLIC_CIDR_BLOCK_1
- PUBLIC_CIDR_BLOCK_2
- PUBLIC_CIDR_BLOCK_3
# Optional section
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
tags:
tag-name: tag-value
bastionHost:
allowedSSHCIDRBlocks:
- SSH_CIDR_BLOCK
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
VPC קיים
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSManagementService
metadata:
name: management
spec:
version: ANTHOS_CLI_VERSION
region: AWS_REGION
authentication:
awsIAM:
adminIdentityARNs:
- ADMIN_AWS_IAM_ARN
kmsKeyARN: KMS_KEY_ARN
databaseEncryption:
kmsKeyARN: KMS_KEY_ARN
securityGroupIDs:
- SECURITY_GROUP_IDS
googleCloud:
projectID: GCP_PROJECT_ID
serviceAccountKeys:
managementService: MANAGEMENT_KEY_PATH
connectAgent: CONNECT_KEY_PATH
node: NODE_KEY_PATH
iam:
permissionsBoundary: IAM_PERMISSIONS_BOUNDARY
path: IAM_PATH
existingVPC:
subnetID: [MANAGEMENT_SUBNET_ID]
allowedSSHSecurityGroupIDs: [SSH_SECURITY_GROUPS]
# Optional fields
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
dataVolume:
volumeType: DATA_VOLUME_TYPE
iops: DATA_VOLUME_IOPS
kmsKeyARN: DATA_VOLUME_KEY
ubuntuRepositoryMirror: 'packages.cloud.google.com'
bastionHost:
subnetID: [BASTION_HOST_SUBNET_ID]
allowedSSHCIDRBlocks:
- [SSH_CIDR_BLOCK]
rootVolume:
volumeType: ROOT_VOLUME_TYPE
iops: ROOT_VOLUME_IOPS
kmsKeyARN: ROOT_VOLUME_KEY
bootstrapS3Bucket: BOOTSTRAP_S3_BUCKET
tags:
tag-name: tag-value
proxy: PROXY_JSON_FILE
terraform:
invokeManually: No
stateGCSBucket: GCS_BUCKET_NAME
בקטעים הבאים מתוארים השדות האלה.
spec.version
הערך של spec.version הוא הגרסה של שירות הניהול ש-anthos-
gke יוצר. הגרסה תואמת לפלט של anthos-gke version. לדוגמה, aws-1.14.1-gke.0.
spec.region
הערך של spec.region הוא אזור AWS שבו רוצים לפרוס את שירות הניהול. לדוגמה, us-east-1.
spec.authentication.awsIAM
הערך של spec.authentication.awsIAM.adminIdentityARNs הוא מחרוזת עם שם המשאב של אמזון (ARN) של משתמש AWS IAM עם הרשאות ליצירת שירות ניהול של GKE ב-AWS. לדוגמה: arn:aws:iam::123456789:user/someuser.
spec.kmsKeyARN
הערך של spec.kmsKeyARN הוא מחרוזת עם שם המשאב (ARN) או הכינוי של מפתח AWS KMS שנוצר בדרישות המוקדמות.
GKE ב-AWS משתמש במפתח להצפנת מעטפת.
לדוגמה, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.
spec.databaseEncryption
הערך של spec.databaseEncryption.kmsKeyARN הוא מחרוזת עם שם משאב Amazon (ARN) או כינוי מפתח של מפתח AWS KMS שמשמש את GKE ב-AWS להצפנת סודות בשכבת האפליקציה באשכולות. לדוגמה, arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.
spec.securityGroupIDs
הערך של spec.securityGroupIDs הוא רשימה של מזהי קבוצות אבטחה נוספים ב-AWS שהוקצו למכונה הווירטואלית של שירות הניהול.
לדוגמה, [sg-00123456789abcd, sg-00123456789def1]`.
spec.dedicatedVPC
השדה הזה מייצג את הגדרות ה-VPC הרצויות.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| vpcCIDRBlock | בלוק ה-CIDR של ה-VPC הרצוי ב-AWS. המספר צריך להיות בין /16 ל- /28 ביטים. | string |
10.0.0.0/16 |
| availabilityZones | אזורי זמינות לפריסת רפליקות של מישור הבקרה. לכל אזור תהיה רשת משנה משלו, ויהיה צורך בבלוק CIDR נפרד. | list(string) |
[us-east-1a, us-east-1b] |
| privateSubnetCIDRBlocks | בלוק CIDR לתת-רשתות פרטיות ב-VPC בכל אזור זמינות. צריך להיות תת-קבוצה של vpcCIDRBlock. צריכה להיות לכם תת-רשת אחת לכל אזור זמינות. |
list(string) |
[10.0.101.0/24, 10.0.102.0/24] |
| publicSubnetCIDRBlocks | בלוק CIDR לתת-רשתות ציבוריות ב-VPC בכל אזור זמינות. צריך להיות תת-קבוצה של vpcCIDRBlock. צריכה להיות לכם תת-רשת אחת לכל אזור זמינות. |
list(string) |
[10.0.1.0/24, 10.0.2.0/24] |
| bastionAllowedSSHCIDRBlocks | בלוקים של CIDR שמהם מותרת גישת SSH נכנסת. השדה הזה הוצא משימוש ב-GKE ב-AWS 1.5. משתמשים ב-spec.bastionHost בגרסה 1.5 ואילך. |
string |
[104.132.0.0/14] |
spec.existingVPC
השדות בקטע spec.existingVPC משמשים להגדרת GKE ב-AWS לשימוש ב-AWS VPC קיים.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| subnetID | מזהה רשת המשנה שבה פועל שירות הניהול. | string |
subnet-00123456789ab |
| allowedSSHSecurityGroupIDs | רשימה של מזהי קבוצות אבטחה שמותרת להן גישת SSH ב-VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
השדות בקטע spec.googleCloud configure your Google Cloud project ו-IAM service account keys.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| projectID | Google Cloud Google Cloud פרויקט. | string |
my-gcp-project-id |
| serviceAccountKeys | נתיבי קבצים אל מפתחות של חשבונות שירות. | serviceAccountKeys |
spec.googleCloud.serviceAccountKeys
השדות שמופיעים בקטע spec.googleCloud.serviceAccountKeys כוללים נתיבים של קבצים מקומיים למפתחות של חשבונות שירות ב-GCP. תיאורים מפורטים של כל מפתח זמינים בקטע תנאים מוקדמים.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
managementService
|
מפתח של חשבון שירות שמשמש את אשכול הניהול | מחרוזת | path/to/key/management-sa-key.json
|
connectAgent
|
מפתח לחשבון שירות שמשמש את סוכן החיבור של GKE Hub | מחרוזת | path/to/key/hub-sa-key.json
|
node
|
מפתח של חשבון שירות שמשמש את הצמתים | מחרוזת | path/to/key/node-sa-key.json
|
spec.iam
השדות בקטע spec.iam מאפשרים להגדיר פרמטרים אופציונליים של AWS IAM עבור סביבת GKE ב-AWS.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| permissionsBoundary | ARN של גבולות ההרשאות לתפקידי IAM | string |
arn:aws:iam::126285863215:policy/testPolicyBoundary |
| נתיב | הנתיב לתפקיד IAM | string |
/org_abc/team_abc/member_abc/ |
spec.bastionHost
הקטע spec.bastionHost הוא אופציונלי ומתאר יעד מבוצר (bastion host).
יעד מבוצר (bastion host) הוא מכונת EC2 שמוצבת ברשת משנה ציבורית. היא מאפשרת גישת SSH נכנסת מבלוק CIDR ספציפי וגישת SSH יוצאת לשירות הניהול ולאשכולות המשתמשים של GKE ב-AWS.
אפשר ליצור יעד מבוצר (bastion host) להתקנות של dedicatedVPC או של existingVPC. השדה allowedSSHCIDRBlocks מציין את טווח הכתובות הנכנסות המותרות, והוא לא יכול להיות ריק.
אם לא קיים מארח יעד מבוצר (bastion host), GKE on AWS יוצר מארח יעד מבוצר (bastion host) חדש.
- במהלך התקנת
dedicatedVPC, המערכת של GKE ב-AWS יוצרת רשת משנה. - במקרה של התקנת
existingVPC, צריך לספק רשת משנה עבור יעד מבוצר (bastion host) ולוודא שיש לרשת המשנה הזו קישוריות ל-VPC.
כדי לשנות את יעד הבסטיון (bastion host), משנים או מוחקים את השדה spec.bastionHost
ומריצים את הפקודה anthos-gke aws management init ואחריה את הפקודה anthos-gke aws management apply.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| subnetID | המזהה של רשת המשנה שבה פועל יעד מבוצר (bastion host). בהתקנות של existingVPC, רשת המשנה צריכה לאפשר תעבורת נתונים נכנסת ממקום הגישה ליציאה 22. בנוסף, צריך לוודא שרשת ה-VPC מאפשרת גישה נכנסת מתת-הרשת הזו. במקרים של התקנות dedicatedVPC, אין לציין את השדה הזה. GKE ב-AWS יקצה את תת-הרשת עם הגישה הנדרשת. |
מחרוזת | subnet-003bdf7b0f5e21e45 |
| allowedSSHCIDRBlocks | בלוקים של CIDR שמהם מותרת גישת SSH נכנסת. | list(string) |
[104.132.0.0/14] |
| rootVolume | אובייקט שמתאר את נפח האחסון הבסיסי של מארח ה-bastion. | object |
{volumeType: gp2} |
spec.rootVolume, spec.dataVolume ו-spec.bastionHost.rootVolume
בטבלה הבאה מתוארים שדות נפוצים לאובייקטים הבאים:
spec.rootVolume, עבור נפחי דיסקים בסיסיים במישור הבקרה-
spec.dataVolume, עבור נפחי דיסקים של נתונים במישור הבקרה -
spec.bastionHost.rootVolume, עבור נפחי דיסק הבסיס של יעד מבוצר (bastion host)
| שם | תיאור | סוג | דוגמה | חובה |
|---|---|---|---|---|
| volumeType | סוג נפח האחסון ב-EBS של AWS בצומת. הערך יכול להיות gp2 (ברירת מחדל) או gp3. |
string |
gp2 |
לא |
| iops | הכמות של פעולות קלט/פלט (IOPS) שהוקצו לנפחים לשנייה. ההגדרה תקפה רק אם volumeType הוא GP3. מידע נוסף זמין במאמר General Purpose SSD volumes (gp3). |
integer |
5000 |
לא |
| kmsKeyARN | מספר ה-ARN של מפתח AWS KMS שמשמש להצפנת נפח ה-EBS. מידע נוסף מופיע במאמר בנושא שימוש במפתח CMK בניהול הלקוח להצפנת אמצעי אחסון. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
לא |
spec.tags
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| תגים | מטא-נתונים אופציונליים של מפתח/ערך שמוקצים לכל משאב AWS שתומך בשירות הניהול. | map(string) |
{Environment: Production, Team: Analytics} |
spec.proxy
השדה spec.proxy מגדיר Proxy אופציונלי ל-HTTP או ל-HTTPS.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| שרת proxy | הנתיב אל קובץ ההגדרה של ה-proxy. | נתיב יחסי מanthos-gke.yaml |
proxy.json |
spec.bootstrapS3Bucket
השדה spec.bootstrapS3Bucket מגדיר שם של קטגוריית S3 ל-GKE ב-AWS .
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| bootstrapS3Bucket | שדה אופציונלי לשם קטגוריית AWS S3 שבה GKE ב-AWS מאחסן את פרטי התצורה. אם רוצים ליצור כמה שירותי ניהול של GKE ב-AWS באותו אזור AWS, צריך להגדיר את הערך הזה לשם ייחודי של קטגוריה. | string |
example-s3-bucket |
spec.terraform
השדה spec.terraform.invokeManually מגדיר את הפקודה anthos-gke כך שלא ייצור שירות ניהול.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| invokeManually | שדה אופציונלי שמגדיר את כלי שורת הפקודה anthos-gke כך שלא ייצור שירות ניהול אחרי בנייה ואימות של ההגדרה. אם מגדירים את invokeManually ל-Yes, אפשר לערוך ולהחיל את קובצי ההגדרות של Terraform באופן ידני. |
Yes, No |
Yes |
| stateGCSBucket | שדה אופציונלי שמציין קטגוריה קיימת של Cloud Storage שבה Terraform ישמור את נתוני ההגדרה שלו. | string |
example-GCS-bucket |