Object Storage Service (OSS); resimler, ses dosyaları ve video dosyaları gibi yapılandırılmamış veriler için büyük ölçekli, güvenli, maliyet etkin ve son derece güvenilir depolama alanı sağlar. Bu konuda, bir OSS biriminin elastik konteyner örneğine nasıl bağlanacağı açıklanmaktadır.
Kullanım notları
OSS kullanıma göre faturalandırılır ve kullandıkça öde, kaynak paketleri ile depolama kapasitesi birimleri (SCU) gibi faturalandırma yöntemlerini destekler. Daha fazla bilgi için bkz. OSS faturalandırmasına genel bakış.
OSS paylaşımlı depolama sunar. Tek bir OSS paketi birden fazla örneğe bağlanabilir.
-
Tek bir bağlama dizininde 1.000'den fazla dosya depolamayın.
Aşırı sayıda dosya, OSS istemcisinin büyük miktarda bellek tüketmesine neden olabilir; bu durum örnek için OOM (bellek yetersizliği) olayına yol açabilir.
Ön koşullar
-
Bir OSS paketi oluşturun.
OSS konsolu üzerinde oturum açın.
-
Bir OSS paketi oluşturun.
Daha fazla bilgi için bkz. Paket oluşturma.
-
Bir yetkilendirme yöntemi seçin.
-
Yetkilendirme için RAM rolü kullanın (Önerilir).
Bir RAM rolü oluşturun ve bu role izinler atayın. Daha fazla bilgi için bkz. RAM rolü oluşturma ve RAM rolüne izin atama.
Rolü oluştururken Trusted Entity Type değerini Alibaba Cloud Service, Role Type değerini Normal Service Role ve Trusted Service değerini Elastic Compute Service (ECS) olarak ayarlayın. AliyunOSSFullAccess ilkesini role ekleyin.
-
Yetkilendirme için AccessKey çifti kullanın (Önerilmez).
Bir AccessKey ID ve AccessKey Secret edinin. Daha fazla bilgi için bkz. AccessKey çifti edinme.
-
Yapılandırma (API)
CreateContainerGroup API işlemini çağırarak bir elastik konteyner örneği oluştururken Volume ile ilgili parametreleri kullanarak birimleri belirtebilir ve ardından Container.VolumeMount ile ilgili parametreleri kullanarak bu birimleri konteynerlere bağlayabilirsiniz. İlgili parametreler aşağıda açıklanmıştır. Daha fazla bilgi için bkz. CreateContainerGroup.
Birim bildirme
Volume ile ilgili parametreleri kullanarak birimleri belirtirken önce birimlerin türlerini ve adlarını belirlemeniz gerekir. Ardından, Volume.N.Type parametresinin değerine bağlı olarak diğer Volume ile ilgili parametreleri yapılandırmanız gerekir.
|
Parametre |
Tür |
Örnek |
Açıklama |
|
Volume.N.Name |
String |
oss-demo |
Birim adı. |
|
Volume.N.Type |
String |
FlexVolume |
FlexVolume eklentisi kullanılarak bağlanan bir birim oluşturmak için FlexVolume olarak ayarlayın. |
|
Volume.N.FlexVolume.Driver |
String |
alicloud/oss |
FlexVolume eklenti sürücüsü. Bir OSS birimi bağlamak için |
|
Volume.N.FlexVolume.Options |
String |
{"bucket":"test-","url":"oss-cn-hangzhou.aliyuncs.com","ramRole":"ram-"} |
FlexVolume nesnesi için seçeneklerden oluşan bir JSON dizesi. FlexVolume kullanarak bir OSS birimi bağlarken
|
Birimleri bağlama
Birimleri belirttikten sonra VolumeMount ile ilgili parametreleri kullanarak bu birimleri konteynerlere bağlayabilirsiniz.
Parametre | Tür | Örnek | Açıklama |
Container.N.VolumeMount.N.Name | String | test-volume | N numaralı konteynere bağlanacak N numaralı birimin adı. Bu değer, Volume.N.Name değeridir. |
Container.N.VolumeMount.N.MountPath | String | /usr/share | Birimin konteyner içinde bağlanacağı yol. Bu dizindeki veriler, birimdeki veriler tarafından gizlenir. |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | Birim alt dizini. Bu parametre, örneğin aynı birimin farklı alt dizinlerini konteynerlerin farklı alt dizinlerine bağlamasını sağlar. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Bağlama dizininin salt okunur olup olmadığını belirtir. Varsayılan değer: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | N numaralı birimin bağlama yayılımı ayarı. Bağlama yayılımı, bir konteynere bağlanan birimlerin aynı elastik konteyner örneğindeki diğer konteynerlerle veya hatta aynı ana bilgisayardaki diğer elastik konteyner örnekleriyle paylaşılmasını sağlar. Geçerli değerler:
Varsayılan değer: None. |
Birimler başlatma konteynerlerine de bağlanabilir. Gerekli parametreler önceki tabloda yer alan parametrelere benzerdir. Yalnızca Container ifadesini InitContainer olarak değiştirmeniz yeterlidir.
Yapılandırma (Konsol)
Elastik Konteyner Örneği satın alma sayfasında bir elastik konteyner örneği oluştururken Container Group Configurations bölümünde birimleri belirtebilir ve ardından Container Configurations bölümünde bu birimleri konteynerlere bağlayabilirsiniz.
Birim bildirme
Container Group Configurations bölümünde Advanced Settings seçeneğini genişletin.
Storage bölümünde, OSS Persistence sekmesinde Add düğmesini tıklayın.
-
OSS birimi parametrelerini yapılandırın.
Name: OSS birimi adı.
Bucket: OSS paketi adı.
RAM Role: OSS'e erişim izni olan RAM rolü.
Birim bağlama
Container Configurations bölümünde bir konteyner seçin ve gelişmiş ayarlarını genişletin.
-
Storage anahtarını açın ve Add düğmesini tıklayın.
Kullanılabilir birimler, konteyner grubu yapılandırmasında bildirdiğiniz birimlerdir.
Depolama yapılandırma satırında Volume değerini bildirilen bir birim olarak ayarlayın (örneğin
oss-demo), OSS Persistence gibi bir depolama türü seçin ve Mount Path in Container alanına bir yol girin (örneğin/data). İsteğe bağlı olaraktestgibi bir Sub Path belirtin ve Read-only onay kutusunu işaretleyin.
Birimleri birden fazla konteynere bağlamak istiyorsanız daha fazla konteyner seçin ve önceki adımları tekrarlayın.
Yapılandırma örneği
-
Bir elastik konteyner örneği (Örnek A) oluşturun ve buna bir OSS birimi bağlayın.
Aşağıdaki örnekte, Örnek A'yı oluşturmak için CreateContainerGroup işlemi çağrılırken kullanılan parametreler gösterilmektedir. Daha fazla bilgi için bkz. CreateContainerGroup.
ContainerGroupName=test-oss-a # Declare the volume Volume.1.Name=oss-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/oss Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"} # Mount the volume to the container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=oss-demo Container.1.VolumeMount.1.MountPath=/data-a -
Örnek A'ya bağlanın ve bağlama dizininde bir dosya oluşturun.
Bir elastik konteyner örneğine nasıl bağlanılacağı hakkında bilgi için bkz. Workbench kullanarak ECI örneğine bağlanma.
root@test-oss-a:/# cd data-a root@test-oss-a:/data-a# ls root@test-oss-a:/data-a# echo "hello" >test root@test-oss-a:/data-a# ls test root@test-oss-a:/data-a# cat test hello Örnek A'yı silin.
-
Başka bir elastik konteyner örneği (Örnek B) oluşturun ve aynı OSS birimini buna bağlayın.
ContainerGroupName=test-oss-b # Declare the volume Volume.1.Name=oss-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/oss Volume.1.FlexVolume.Options={"bucket":"test-***","url":"oss-cn-hangzhou-internal.aliyuncs.com","ramRole":"ram-***"} # Mount the volume to the container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=oss-demo Container.1.VolumeMount.1.MountPath=/data-b -
Örnek B'ye bağlanın ve bağlama dizinindeki dosyayı kontrol edin.
OSS kalıcı depolama sağladığından Örnek A silindikten sonra bile Örnek B'den Örnek A tarafından yazılan dosyaya erişebilirsiniz.
root@test-oss-b:/# cd data-b root@test-oss-b:/data-b# ls test root@test-oss-b:/data-b# cat test hello