SSH kullanmadan kapsayıcıları görüntülemek ve hata ayıklamak için SAE konsolundaki hafif web kabuğunu kullanın. Bir SAE kapsayıcısının temel görüntüsü geçicidir ve uygulama çalışma zamanı için tasarlanmıştır; bu nedenle yalnızca çalıştırılabilir bir /bin/bash dosyasına ihtiyacınız vardır. Sorun gidermeyi kolaylaştırmak için gerekli tüm işletim ve bakım araçlarını görüntünüze dahil etmenizi öneririz.
Sınırlamalar
Web kabuğu Windows görüntülerini desteklemez.
Kullanım notları
Kod çalıştırma ve web kabuğu çalışma zamanı ortamından siz sorumlusunuz.
Uygulama ağ ortamı
SAE uygulamaları, kullanıcı tarafından oluşturulan bir Sanal Özel Bulut (VPC) içinde dağıtılır ve ara katmanda hizmet çağrılarını mantıksal olarak yalıtmak için ad alanlarını kullanır. Bir ad alanı, VPC içindeki bir vSwitch'e bağlıdır. Bir ad alanı yalnızca bir vSwitch'e bağlanabilir ancak bir vSwitch birden fazla ad alanını destekleyebilir. Farklı VPC'lerdeki uygulamalar birbirine erişemez çünkü VPC IP adresleri özeldir. Farklı ad alanlarındaki uygulamalar, hizmet keşfi ve yapılandırma dağıtımı gibi hizmetler açısından birbirinden yalıtılmıştır.
VPC'nin ilkeleri ve ürün ayrıntıları hakkında daha fazla bilgi için bkz. Nasıl çalışır.
SAE kapsayıcıları, Object Storage Service (OSS) ve Container Registry gibi Alibaba Cloud hizmetleri hariç, VPC'lerinin dışındaki hizmetlere doğrudan erişemez. Ek yapılandırma olmadan bir kapsayıcı yalıtılmış bir ağda çalışır ve dışarıdan erişilemez.
Aşağıdaki örnek, bir kapsayıcının internete erişemediğini göstermektedir.
[root@xxx:serverlesswar-12504560-a374-4471-80c7-d799d69ba3f7-xxx admin]# ping www.taobao.com
PING www.taobao.com.danuoyi.tbcache.com (xxx.xxx.xxx.xxx) xxx bytes of data.
^C
--- www.taobao.com.danuoyi.tbcache.com ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9198ms
Bir kapsayıcının internetteki hizmetlere erişmesi gerekiyorsa bir NAT ağ geçidi satın almanız ve VPC'deki vSwitch için bir SNAT kuralı yapılandırmanız gerekir. Daha fazla bilgi için bkz. SAE uygulamasının internete erişmesine izin vermek için NAT ağ geçidi yapılandırma.
SNAT kuralı, VPC'de genel IP adresi olmayan örneklerin NAT ağ geçidine bağlı Elastik IP Adresi (EIP) üzerinden internete erişmesini sağlar. Daha fazla bilgi için bkz. İnternet yönelik ürünler.
Görüntü oluşturma
SAE , Alibaba Cloud Container Registry tabanlı entegre görüntü oluşturma ve yönetimi sağlar. Temel görüntü centos:7 olup dil ve kodlama ayarları, saat dilimi ve OpenJDK önceden yapılandırılmıştır.
SAE , çalışma zamanı kaynaklarını tüketmemek için geniş bir araç setini entegre etmez. Ek araçlara ihtiyacınız varsa özel bir görüntü oluşturun veya gerekirse araçları OSS'ten alın. Daha fazla bilgi için bkz. Java görüntüsü oluşturma.
Web kabuğu açma
Web kabuğunu kullanarak temel işletim ve bakım görevlerini gerçekleştirmek için aşağıdaki adımları izleyin:
SAE Application List sayfasında üst kısımdan bir bölge ve ad alanı seçin ve hedef uygulamanın ayrıntılar sayfasını açmak için ID değerine tıklayın.
Basic Information sayfasında Instances sekmesine tıklayın.
Instances sekmesinde, Default Group bölümünde hedef örneği bulun ve Actions sütununda Webshell seçeneğine tıklayın.
Optional: Web kabuğu açıldıktan sonra tam ekran moduna geçmek için pencerenin sağ üst köşesindeki
simgesine tıklayabilirsiniz.-
Kapsayıcınızı görüntülemek ve hata ayıklamak için gerektiğinde web kabuğu penceresinde komutları çalıştırın.
Daha fazla bilgi için bkz. Örnek meta verilerini alma ve Uygulamayı tanılama.
Örnek meta verilerini alma
Bir uygulamayı SAE içinde dağıttıktan sonra güvenlik grubu ID değeri, VPC ID değeri ve vSwitch ID değeri dahil olmak üzere örnek hakkında temel meta verileri edinebilirsiniz.
|
Meta veri öğesi |
Açıklama |
|
/etc/podinfo/sgId |
Güvenlik grubu ID meta verilerini depolayan dosyanın yolu. |
|
/etc/podinfo/vpcId |
VPC ID meta verilerini depolayan dosyanın yolu. |
|
/etc/podinfo/vswitchId |
vSwitch ID meta verilerini depolayan dosyanın yolu. Not
Birden fazla vSwitch varsa vSwitch ID değerleri virgül (,) ile ayrılır. |
SAE console üzerinde oturum açabilir ve güvenlik grubu ID değeri, VPC ID değeri ile vSwitch ID değeri meta verilerini doğrulamak için web kabuğu penceresinde aşağıdaki komutları çalıştırabilirsiniz.
-
podinfodizinine gitmek için aşağıdaki komutu çalıştırın:cd /etc/podinfo/Notcan't cd to /etc/podinfo/hata mesajı görünürse sorunu çözmek için örneği Restart veya Deploy Application işlemlerini uygulayabilirsiniz. -
Örnek meta verilerini içeren tüm dosyaları görüntülemek için aşağıdaki komutu çalıştırın:
lsBeklenen çıktı:
sgId vpcId vswitchId -
İlgili meta verileri örnek içinde doğrulamak için gerektiğinde aşağıdaki komutları çalıştırın.
-
Güvenlik grubu ID değerini alın.
cat sgIdBeklenen çıktı:
sg-2ze4ddm2rqgenvcx****sh-4.2# -
VPC ID değerini alın.
cat vpcIdBeklenen çıktı:
vpc-2zeqku2oevokwm66b****sh-4.2# -
vSwitch ID değerini alın.
cat vswitchIdBeklenen çıktı:
vsw-2zewmy4ynhljytzhu****sh-4.2#
-
Kurulum komutlarını kopyalama
SAE console üzerinde oturum açabilir ve gerektiğinde web kabuğu penceresine komutlar yüklemek için aşağıdaki adımları izleyebilirsiniz.
Bir web kabuğu oturumunda yüklenen komutlar, kapsayıcı yeniden oluşturulduktan sonra kaybolur. Sık kullanılan komutları görüntüyü oluştururken yükleyin.
Web kabuğu penceresinin sağ üst köşesindeki
simgesine tıklayın.-
Açılan Copy Command iletişim kutusunda gerektiğinde yüklenecek bileşenleri seçin, komutu ön izleyin ve ardından Copy seçeneğine tıklayın.
Install openssh: OpenSSH, Secure Shell (SSH) protokolünün ücretsiz ve açık kaynaklı bir uygulamasıdır. OpenSSH, uzaktan kontrol ve dosya aktarımı oturumları sırasında verileri şifrelemek için bir sunucu tarafı arka plan programı ve istemci tarafı araçları sağlar. OpenSSH'yi yükleyerek SSH uzaktan oturum açma ve SFTP ile SCP kullanarak dosya yükleme veya indirme gibi uzaktan hata ayıklama yeteneklerini kullanabilir ve belirli bir SAE uygulama örneğini geçici olarak hata ayıklayabilirsiniz.
Install net-tools (netstat): netstat komutu ağ durumunu izler. Yönlendirme tabloları, etkin ağ bağlantıları ve her bir ağ arabirimi cihazının durumu gibi bilgileri görüntüleyebilir.
Install iroute (ss): Socket Statistics (ss) komutu soket istatistiklerini alır. netstat komutuna benzer bilgiler döndürse de ss komutu daha ayrıntılı TCP ve bağlantı durumu bilgilerini daha hızlı gösterebilir.
Kopyalanan komutu web kabuğu penceresine yapıştırın ve çalıştırmak için Enter tuşuna basın.
Uygulamayı tanılama
Routine checks
Java uygulaması için işlemi, iş parçacıklarını ve Java Sanal Makinesi (JVM) sağlığını doğrulama gibi rutin kontroller gerçekleştirerek bir SAE uygulamasını tanılamanız mümkündür.
-
Uygulamanın Java işleminin var olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın.
ps -ef | grep javaNotBir kapsayıcı, bir uygulamayı başlatmak için ana işlemini kullanır. Uygulama durursa kapsayıcı çıkar ve SAE hizmet kesintilerini önlemek için otomatik olarak yeniden başlatır.
İşlem yoksa bellek yetersizliği (OOM) günlüklerini kontrol etmek için
dmesg | grep -i killkomutunu çalıştırın.Bu tür günlükler varsa uygulamanın işleminin durdurulduğu anlamına gelir. Kök nedeni belirlemek için çalışma dizinindeki
hs_err_pid{PID}.logdosyasını kontrol etmeniz gerekir.
-
Java uygulamalarının çevrimiçi analizi için Alibaba'nın açık kaynaklı bir tanılama aracı olan Arthas kullanabilirsiniz. Arthas'ı test görüntünüze entegre etmenizi öneririz. Java sınıf yükleme durumunu gerçek zamanlı olarak görüntüler; bu sayede yöntem giriş ve çıkış parametrelerini, ortam değişkenlerini ve daha fazlasını gözlemlemek kolaylaşır.
-
İnternete bağlanın.
Daha fazla bilgi için bkz. SAE uygulamasının internete erişmesine izin vermek için NAT ağ geçidi yapılandırma.
-
Arthas'ı indirmek için aşağıdaki komutu çalıştırın.
sudo wget https://alibaba.github.io/arthas/arthas-boot.jar -
Arthas'ı başlatmak için aşağıdaki komutu çalıştırın.
sudo java -jar arthas-boot.jar
-
Upload and download logs
Rutin kontroller yetersiz kalırsa kapsayıcıdan buluta günlükleri yükleyin ve daha ileri analiz için yerel makinenize indirin.
10 MB'a kadar dosyalar için web kabuğunun yerleşik dosya aktarma özelliklerini kullanın. Daha fazla bilgi için bkz. Dosya yüklemek ve indirmek için web kabuğu kullanma.
10 MB'tan büyük dosyalar için Alibaba Cloud OSS kullanabilirsiniz. OSS hizmeti tüm Alibaba Cloud ağ ortamlarından erişilebilir olduğundan günlükleri yüklemek ve indirmek için kullanabilirsiniz. Aşağıdaki adımları izleyin:
-
Kapsayıcı içine OSS komut satırı aracını (ossutil) yükleyin. Daha fazla bilgi için bkz. OSS komut satırı aracını yükleme.
Bu konuda örnek olarak 64 bitlik bir CentOS sistemi kullanılmaktadır. Kapsayıcınızın internet erişimi yoksa dosyayı yerel makinenize indirebilir, OSS'e yükleyebilir ve ardından dosyayı kapsayıcı içinden indirmek için OSS'in VPC dahili uç noktasını alabilirsiniz.
-
ossutil'i indirmek için aşağıdaki komutu çalıştırın.
sudo wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64 -
Dosya izinlerini değiştirmek için aşağıdaki komutu çalıştırın.
sudo chmod 755 ossutil64
-
-
OSS komut satırı aracını, mevcut bölgedeki VPC için uç nokta ve karşıya yüklenen dosyaları alacak hesabın AccessKey bilgileriyle yapılandırın. Ardından OSS hizmetinin kullanılabilir olduğunu doğrulamak için mevcut bir paketi kontrol edin.
NotMevcut hesap olmak zorunda olmamakla birlikte bir Alibaba Cloud hesabı için OSS'in etkinleştirildiğinden emin olun.
Bir paket oluşturun. Daha fazla bilgi için bkz. Konsolda paket oluşturma.
-
OSS erişim bilgilerini depolamak için bir yapılandırma dosyası oluşturmak üzere aşağıdaki komutu çalıştırın.
AccessKey ve uç nokta bilgilerinizi yapılandırmak için istemleri izleyin. Bir STS belirteci girmeniz gerekmez.
./ossutil64 config -
Tüm paketleri listelemek için aşağıdaki komutu çalıştırın.
Hesabın kullanılabilir olup olmadığını kontrol edin. Bir hata bildirilirse yapılandırma hatalıdır.
./ossutil64 lsÖrnek çıktı:
CreationTime Region StorageClass BucketName 2021-12-08 18:53:46 +0800 CST oss-cn-hangzhou Standard oss://test-bucket -
sae-app.log adlı bir örnek günlük dosyası oluşturmak için aşağıdaki komutu çalıştırın.
echo "Hello" > sae-app.log -
Günlük dosyasını belirtilen pakete yüklemek için aşağıdaki komutu çalıştırın.
./ossutil64 cp sae-app.log {bucket-address}Örnek:
./ossutil64 cp sae-app.log oss://test-bucket
-
Sonucu doğrulayın.
-
Yöntem 1: Yüklenen örnek dosyayı görüntülemek için aşağıdaki komutu çalıştırın.
./ossutil64 ls oss://test-bucketÖrnek çıktı:
LastModifiedTime Size(B) StorageClass ETAG ObjectName 2021-12-08 19:26:18 +0800 CST 6 Standard 09F7E02F1290BE211DA707A266F1**** oss://cri-55md3gmii09m****-chart/sae-app.log Object Number is: 1 0.047758(s) elapsed Yöntem 2: OSS console veya diğer araçlarda günlük dosyanızı bulun, yerel makinenize indirin ve ardından analiz için tercih ettiğiniz araçları kullanın.
-