המשאב AWSManagementService מכיל מידע על ההגדרות של שירות הניהול של GKE ב-AWS.
לפני שיוצרים את שירות הניהול, מגדירים קובץ YAML בשם anthos-gke.yaml. הכלי anthos-gke משתמש בהגדרה כשיוצרים את שירות הניהול.
התוכן של קובץ anthos-gke.yaml תלוי בשאלה אם השתמשתם ב-anthos-gke כדי ליצור ענן וירטואלי פרטי (VPC) ייעודי ב-AWS או אם השתמשתם בVPC קיים ב-AWS.
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 הוא מחרוזת עם שם המשאב של Amazon (ARN) של משתמש AWS IAM עם הרשאות ליצירת שירות ניהול של GKE ב-AWS. לדוגמה: arn:aws:iam::123456789:user/someuser.
spec.kmsKeyARN
הערך של spec.kmsKeyARN הוא מחרוזת עם שם משאב Amazon (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 של הענן הווירטואלי הפרטי הרצוי ב-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.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| subnetID | מזהה רשת המשנה שבה פועל שירות הניהול. | string |
subnet-00123456789ab |
| allowedSSHSecurityGroupIDs | רשימה של מזהי קבוצות אבטחה שמותרת להן גישת SSH ב-VPC. | list(string) | [sg-00123456789abcd, sg-00123456789def1] |
spec.googleCloud
השדות בקטע spec.googleCloud configure your Google Cloud project משמשים להגדרת מפתחות של חשבונות שירות ב-IAM.
| שם | תיאור | סוג | דוגמה |
|---|---|---|---|
| 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, GKE on AWS יוצר מארח bastion חדש.
- במהלך התקנת
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 | סוג נפח האחסון של AWS EBS של הצומת. הערך יכול להיות 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 on 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 | שדה אופציונלי שבו מציינים קטגוריה קיימת ב-Google Cloud Storage שבה Terraform ישמור את נתוני ההגדרה שלו. | string |
example-GCS-bucket |