您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)如何制作ACK集群自定義節(jié)點(diǎn)鏡像的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
隨著云原生時(shí)代的到來,用戶應(yīng)用、業(yè)務(wù)上云的需求也越來越多,不同的業(yè)務(wù)場景對(duì)容器平臺(tái)的需求也不盡相同,其中一個(gè)非常重要的需求就是使用自定義鏡像創(chuàng)建ACK集群。
ACK支持用戶使用自定義鏡像創(chuàng)建Kubernetes集群,但用戶在制作打包自定義鏡像時(shí),往往會(huì)遇到以下痛點(diǎn):
(1)人工操作步驟,效率低
(2)鏡像變更歷史記錄缺失,不便于故障定位
(3)無法對(duì)自定義鏡像進(jìn)行校驗(yàn)并判斷是否符合ACK集群節(jié)點(diǎn)要求
基于以上痛點(diǎn),我們開源了ack-image-builder項(xiàng)目幫助用戶快速制作符合ACK集群節(jié)點(diǎn)要求的自定義鏡像。
ack-image-builder項(xiàng)目基于開源工具HashiCorp Packer,提供默認(rèn)配置模板和校驗(yàn)?zāi)_本。
使用ack-image-builder項(xiàng)目創(chuàng)建ACK集群自定義節(jié)點(diǎn)鏡像的步驟如下:
從官方下載頁面選擇操作系統(tǒng)對(duì)應(yīng)的軟件版本,并按照安裝說明文檔安裝和驗(yàn)證packer。
$ packer version Packer v1.4.1
說明packer已安裝成功。
使用Packer創(chuàng)建自定義鏡像時(shí),需要?jiǎng)?chuàng)建一個(gè)JSON格式的模板文件。在該模板文件中,您需要指定創(chuàng)建自定義鏡像的 Alicloud Image Builder(生成器) 和 Provisioners(配置器)。
{ "variables": { "region": "cn-hangzhou", "image_name": "test_image{{timestamp}}", "source_image": "centos_7_06_64_20G_alibase_20190711.vhd", "instance_type": "ecs.n1.large", "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}", "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}" }, "builders": [ { "type": "alicloud-ecs", "access_key": "{{user `access_key`}}", "secret_key": "{{user `secret_key`}}", "region": "{{user `region`}}", "image_name": "{{user `image_name`}}", "source_image": "{{user `source_image`}}", "ssh_username": "root", "instance_type": "{{user `instance_type`}}", "io_optimized": "true" } ], "provisioners": [ { "type": "shell", "scripts": [ "scripts/updateKernel.sh", "scripts/reboot.sh", "scripts/cleanUpKerneles.sh", "config/default.sh", "scripts/updateDNS.sh", "scripts/verify.sh" ], "expect_disconnect": true } ] }
參數(shù) | 描述 |
---|---|
access_key | 您的AccessKeyID |
secret_key | 您的AccessKeySecret |
region | 創(chuàng)建自定義鏡像時(shí)使用臨時(shí)資源的地域 |
image_name | 自定義鏡像的名稱 |
source_image | 基礎(chǔ)鏡像的名稱,可以從阿里云公共鏡像列表獲得 |
instance_type | 創(chuàng)建自定義鏡像時(shí)生成的臨時(shí)實(shí)例的類型 |
provisioners | 創(chuàng)建自定義鏡像時(shí)使用的 Packer 配置器 類型 |
制作自定義鏡像的權(quán)限要求較大,一般建議用戶創(chuàng)建子賬戶并授權(quán)Packer需要的對(duì)應(yīng)RAM Policy,并創(chuàng)建AK。
導(dǎo)入AK:
export ALICLOUD_ACCESS_KEY=XXXXXX export ALICLOUD_SECRET_KEY=XXXXXX
制作自定義鏡像:
$ packer build alicloud.json alicloud-ecs output will be in this color. ==> alicloud-ecs: Prevalidating source region and copied regions... ==> alicloud-ecs: Prevalidating image name... alicloud-ecs: Found image ID: centos_7_06_64_20G_alibase_20190711.vhd ==> alicloud-ecs: Creating temporary keypair: xxxxxx ==> alicloud-ecs: Creating vpc... alicloud-ecs: Created vpc: xxxxxx ==> alicloud-ecs: Creating vswitch... alicloud-ecs: Created vswitch: xxxxxx ==> alicloud-ecs: Creating security group... alicloud-ecs: Created security group: xxxxxx ==> alicloud-ecs: Creating instance... alicloud-ecs: Created instance: xxxxxx ==> alicloud-ecs: Allocating eip... alicloud-ecs: Allocated eip: xxxxxx alicloud-ecs: Attach keypair xxxxxx to instance: xxxxxx ==> alicloud-ecs: Starting instance: xxxxxx ==> alicloud-ecs: Using ssh communicator to connect: 47.111.127.54 ==> alicloud-ecs: Waiting for SSH to become available... ==> alicloud-ecs: Connected to SSH! ==> alicloud-ecs: Provisioning with shell script: scripts/verify.sh alicloud-ecs: [20190726 11:04:10]: Check if kernel version >= 3.10. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if systemd version >= 219. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if sshd is running and listen on port 22. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if cloud-init is installed. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if wget is installed. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if curl is installed. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if kubeadm is cleaned up. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if kubelet is cleaned up. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if kubectl is cleaned up. Verify Passed! alicloud-ecs: [20190726 11:04:10]: Check if kubernetes-cni is cleaned up. Verify Passed! ==> alicloud-ecs: Stopping instance: xxxxxx ==> alicloud-ecs: Waiting instance stopped: xxxxxx ==> alicloud-ecs: Creating image: test_image1564110199 alicloud-ecs: Detach keypair xxxxxx from instance: xxxxxxx ==> alicloud-ecs: Cleaning up 'EIP' ==> alicloud-ecs: Cleaning up 'instance' ==> alicloud-ecs: Cleaning up 'security group' ==> alicloud-ecs: Cleaning up 'vSwitch' ==> alicloud-ecs: Cleaning up 'VPC' ==> alicloud-ecs: Deleting temporary keypair... Build 'alicloud-ecs' finished. ==> Builds finished. The artifacts of successful builds are: --> alicloud-ecs: Alicloud images were created: cn-hangzhou: m-bp1aifbnupnaktj00q7s
其中scripts/verify.sh為對(duì)檢查項(xiàng)的校驗(yàn)部分。
登錄容器服務(wù)控制臺(tái),選擇創(chuàng)建 Kubernetes 專有版 集群, 配置集群創(chuàng)建需要的相關(guān)基礎(chǔ)信息后,點(diǎn)開 顯示高級(jí)選項(xiàng) 并選擇自定義鏡像進(jìn)行集群創(chuàng)建。
感謝各位的閱讀!關(guān)于“如何制作ACK集群自定義節(jié)點(diǎn)鏡像”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。