Kubernetes üzerinde anasistem aracısının kurulması
- Desteklenen Sürümler
- Kuruluş yöntemleri
- İşletmen kullanılarak kuruluş
- Helm Grafiğini Kullanarak Kur
- DaemonSet
- Anasistem aracısının durumunun denetlenmesi
- İzlenen uygulamalar için ağ erişimi yapılandırılması
- Ana düğümleri izle
- İzleme Kubernetes NGINX Giriş
- Sırlar
- Birden çok arka uca raporla
- YönOrtamıaracı güvenliği ile ilgili önemli noktalar
- Örnek YAML dosyası
Desteklenen Sürümler
- Instana, Kubernetes' in mevcut istikrarlı sürümünü destekler. Kubernetes ' in geçerli kararlı sürümü 1.26ise, Kubernetes algılayıcısı 1.24sürümüne sabitlendi. Kubernetes sürüm uyumluluğu garantisi uyarınca, YönOrtamı'nı; 1.26için Kubernetes sürümleri 1.22 destekler. Ancak, bu aralıktaki en düşük 2 sürüm, yumuşak kullanımdan kaldırma olarak kabul edilir.
Kuruluş yöntemleri
Instana aracısını bir Kubernetes kümesine kurmak için kullanılabilecek birkaç yöntem kullanabilirsiniz. Aracıyı bir anasisteme el ile kurarsanız, yalnızca kapsayıcılar ve süreçler izlenir ve Kubernetes verileri toplanmaz. Aracıyı İşletmen' i kullanarak kurmanız önerilir. Diğer yöntemler, Helm Chart ya da YAML file (DaemonSet) konuşlandırmasıdır.
Doğru kuruluş yönteminin seçilmesi
Instana aracısını bir Kubernetes kümesine konuşlandırmanın önerilen yolu, alternatif olarak İşleç ya da Helm grafiği konuşlandırmasını kullanmaktır. Her iki yöntem de birden çok arka uca raporlama ve daha fazlası gibi tüm kullanılabilir yapılandırma seçeneklerini kullanır. Bu size tam denetim sağlar ve statik YAML dosyasında olmayan bazı seçenekleri bile etkinleştirir. Kullanılabilir tüm seçenekler Helm grafiği için ayrıntılı olarak açıklanmıştır ve bu açıklamalar işletmen CRD 'si için de aynı şekilde geçerlidir.
YAML dosyası kuruluşu hızlı konuşlandırmalar için iyidir; ancak, aracı Kubernetes kümenizde çalıştığında, YönOrtamıaracı 'nın sağladığı tüm yapılandırma seçenekleri yoktur. Instana aracılarınıza daha fazla özelleştirme uygulamanız ve el ile kubectl işlemesine güvenmeniz gerekmezse, YAML kuruluş yöntemini seçin.
Kuruluş yöntemlerinin yürürlükteki sürümleri
İşleç, Helm Grafiği ve YAML dosyasının yeni sürümleri sık sık serbest bırakılır. Düzeltmelere, iyileştirmelere ve yeni özelliklere ilişkin en son güncellemeleri takip etmek için, İşleç, Helm Grafiği ya da YAML dosyasının geçerli sürümünü çalıştırdığınızdan emin olun.
İşleç, Helm Grafik ya da YAML dosyasının geçerli sürümünü bulmak için aşağıdaki konulara bakın:
İşletmen kullanılarak kuruluş
Instana, Instana aracısını kurmak ve yönetmek için bir Kubernetes işleci sağlar.
Instana Agent Özel Kaynak Tanımlaması ve ortam değişkenlerini kullanarak ayarlayabileceğiniz yapılandırma seçenekleri için bkz. İşletmen yapılandırması.
Önkoşullar
Not: YönOrtamıana aracısı CRD ' yi YönOrtamıaracı işlecinin 1.x sürümünden otomatik olarak yükseltmek için aşağıdaki önkoşullar gereklidir:
- İşletmenin 1.x sürümünden otomatik CRD yükseltmesi, kümede bulunması gereken 3rd taraf
cert-managerişlecine bağlıdır.cert-managerişlecini düzgün şekilde kurmak ve yapılandırmak için bkz. cert-manager belgeleri. - Öncelikle Instana aracısını sürüm 2.0.9düzeyine yükseltmeniz gerekir; bu sürüm, var olan aracı CR'lerini daha yeni biçime dönüştürmek için bir webhook dönüştürmesi içerir. Bu webhook,
2.0.9sürümünden sonra kaldırılır. Dönüştürme tamamlandıktan sonra YönOrtamıcı aracısını yeniden daha yeni bir sürüme yükseltebilirsiniz.
İşletmeni el ile kurma
İşletmeni aşağıdaki gibi konuşlandırın. En son İşletmen kurulur ve 1.x CRD ' leri büyütülmez:
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yamlŞimdi işleç
instana-agentad alanında çalışır durumda olmalı veinstana-agentözel kaynağının oluşturulmasını beklemelidir.instana-agent-operator.yamlürününün her eski 1.x.x sürümününinstana/instana-agent-operatorkapsayıcı görüntüsünün aynı sürümüne başvuruda bulunacağını unutmayın. DockerHub ve Red Hat Registry içindeki Instana Agent İşletmen görüntüsüne ilişkinlatestetiketi artık desteklenmez. Instana Agent Operator 'un yeni bir sürümünü almak için, daha önce belirtildiği gibi Operator's GitHub ReYayın sayfasından en son operatör yaml 'ye güncellemeniz gerekir.Instana kullanıcı arabiriminde oturum açın ve Diğer > Aracılar > Installing Instana Agents > Kubernetesseçeneklerini tıklatın.
Technology (Teknoloji) listesinden Operator(İşletmen) seçeneğini belirleyin. Bu sayfa, aşağıdaki Adım 4 'te özel kaynak yaml dosyasını düzenlemek için gereksinim duyduğunuz temel yapılandırma değerlerini sağlar.
Bu YAML şablonunuizleyerek özel kaynak YAML dosyasını oluşturun.
Şablonu düzenleyin ve en azından aşağıdaki değerleri değiştirin:
agent.key, YönOrtamı'nizle birlikte ayarlanmalıdır aracı anahtarı.agent.endpointHost, anasistem aracısı uç noktasıile ayarlanmalıdır.agent.endpointPort, anasistem aracısı uç noktasınınkapısıdır ve genellikle"443"(tırnak içine alınmış) değeridir.cluster.name, instana 'da görüntülenen Kubernetes kümesinin adıyla ayarlanmalı.zone.name, instana 'da görüntülenen Kubernetes kümesinin adıyla ayarlanmalı.agent.env(isteğe bağlı) aracı için yetkili sunucu yapılandırmasını belirleme gibi ortam değişkenlerini belirtmek için kullanılabilir. Daha fazla olası ortam değeri için bkz. aracı yapılandırması. Bir örnek:spec: agent: env: INSTANA_AGENT_TAGS: stagingagent.configuration_yaml, birconfiguration.yamlyapılandırma dosyasını belirtmek için kullanılabilir. Aşağıdaki örneğe bakın:spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'configuration.yamluyarlama yapmanız gerekirse, belgeleri buradangörüntüleyin.
Statik anasistem aracısını konuşlandırmak istiyorsanız, özel kaynak YAML dosyasını statik aracı görüntüsüyle yapılandırmanız gerekir. Statik anasistem aracısı görüntüsünü listelemek için
agent.image.namedeğerinicontainers.instana.io/instana/release/agent/staticolarak ayarlayın. Aşağıdaki örneğe bakın:spec: agent: image: name: containers.instana.io/instana/release/agent/staticDüzenlenen özel kaynağı uygula:
kubectl apply -f instana-agent.customresource.yaml
İşletmen, özel kaynaktan yapılandırmayı alır ve YönOrtamı aracısını konuşlandırır.
Anasistem aracısının kaldırılması
Özel kaynağı kaldırarak YönOrtamıana anasistem aracısını kaldırın:
kubectl delete -f instana-agent.customresource.yamlAşağıdaki komutu çalıştırarak işletmeni kaldırın:
kubectl delete -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
İşletmen yapılandırması
Özel kaynak değerleri
Instana Agent özel kaynağı, Instana Helm Grafiği ile tam olarak aynı yapılandırmayı destekler. Tüm yapılandırma parametrelerinin ayrıntılı bir listesi için bkz. Helm Grafik yapılandırması.
Aracı uç noktası için TLS şifrelemesini ayarlama
TLS şifrelemesi iki şekilde eklenebilir. Var olan bir güvenlik dizgisi sağlanabilir ya da bir sertifika ve özel anahtar kullanılabilir.
Var olan güvenlik dizgisini kullanma
TLS şifrelemesi için kubernetes.io/tls tipinde var olan bir güvenlik dizgisini kullanabilirsiniz. Ancak agent.tls.secretName özel kaynak yaml dosyasında sağlanmalıdır.
Sertifika ve özel anahtar sağlanması
Diğer tarafta bir sertifika ve özel anahtar kullanılabilir. Sertifika ve özel anahtar base64-encodedolmalıdır.
Bu değişkeni kullanmak için özel kaynak yaml dosyasına aşağıdaki iki parametreyi ekleyin:
agent.tls.certificateagent.tls.key
Not: agent.tls.secretName ayarlanırsa, agent.tls.certificate ve agent.tls.key yoksayılır.
Helm Grafiğini Kullanarak Kur
DaemonSetile Helm grafiği, YönOrtamıcı aracısını kümenizdeki tüm zamanlanabilir düğümlere ekler.
Instana 'da oturum açın, More-> Agents-> Installing Instana Agents-> Kubernetesseçeneğini tıklatın.
Bu sayfada, anasistem aracısı uç noktası ve aracı anahtarınızgerekir.
Technology (Teknoloji) listesinden Helm chart(Helm grafiği) seçeneğini belirleyin.
Küme adını ve (isteğe bağlı olarak) aracı bölgesini girin.
Küme adı (
INSTANA_KUBERNETES_CLUSTER_NAME), bu veri kümesi tarafından izlenen kümenin özelleştirilmiş adıdır.Aracı bölgesi (
INSTANA_ZONE), altyapı eşleminde görüntülenen bölge gruplamasını uyarlamak için kullanılır.Diğer gerekli parametrelerin tümü önceden doldurulmuştur.
Helm 3 ile aşağıdaki komutu çalıştırın. Kuruluşu yapılandırmak için,
--setişaretini kullanarak komut satırında değerleri belirtin ya da-fişaretini kullanarak değerlerinizi içeren bir yaml dosyası sağlayın.Not: Statik anasistem aracısını konuşlandırmak istiyorsanız, dümen kuruluş komutunda
—set agent.image.name=containers.instana.io/instana/release/agent/staticişaretini ayarlayın.kubectl create namespace instana-agent && \ helm install instana-agent --namespace instana-agent \ --repo https://agents.instana.io/helm \ --set agent.key='<your agent key - as described above>' \ --set agent.endpointHost='<your host agent endpoint - as described above>' \ --set cluster.name='<your-cluster-name>' \ --set zone.name='<your-cluster-name>' \ instana-agentTüm yapılandırma parametrelerinin ayrıntılı bir listesi için YönOrtamı'mıza Helm Chartbakın.
Aracı uç noktası için TLS şifrelemesini ayarlama
TLS şifrelemesi iki şekilde eklenebilir. Var olan bir güvenlik dizgisi sağlanabilir ya da kuruluş sırasında bir sertifika ve özel anahtar kullanılabilir.
Var olan güvenlik dizgisini kullanma
kubernetes.io/tls tipinde var olan bir güvenlik dizgisi kullanılabilir. --set 'agent.tls.secretName=<YOUR_SECRET_NAME>'ile kuruluş sırasında yalnızca secretName sağlanmalıdır. Daha sonra, sağlanan güvenlik dizgisinin dosyaları aracıya dahil edilecek.
Sertifika ve özel anahtar sağlanması
Diğer tarafta, kuruluş sırasında bir sertifika ve özel anahtar eklenebilir. Sertifika ve özel anahtar base64 kodlanmış olmalıdır.
Bu değişkeni kullanmak için aşağıdaki ek değiştirgelerle helm install yürütün:
--set 'agent.tls.certificate=<YOUR_CERTIFICATE_BASE64_ENCODED>'
--set 'agent.tls.key=<YOUR_PRIVATE_KEY_BASE64_ENCODED>'
agent.tls.secretName ayarlanırsa, agent.tls.certificate ve agent.tls.key yoksayılır.
YönOrtamıaracı Hizmeti
Not: Bu bölümde açıklanan işlevler Helm grafiği v1.2.7 ve üstü ile kullanılabilir ve Kubernetes 1.17 ve üstü gerekir.
Helm grafiğinde --set service.create=trueadlı özel bir yapılandırma seçeneği vardır. Bu seçenek, aşağıda belirtilenleri kümeye gösteren bir Kubernetes Service oluşturur:
- gRPC üzerinden
otlpalımı için OpenTelemetry uç noktası - Prometheus'
remote_writeAPI uygulaması - İzleme Web SDK
- ve diğer Aracı API ' leri.
Anasistem aracısının kaldırılması
Helm Grafiği kullanılarak kurulan YönOrtamıana anasistem aracısını kaldırmak için aşağıdaki komutu çalıştırın:
helm uninstall instana-agent
Daha sonra, anasistem aracısıyla ilgili tüm kaynaklar kaldırılır.
DaemonSet olarak kur
Instana aracısını Kubernetes kümenizde DaemonSet olarak kurmak ve yapılandırmak için, instana-agent.yaml dosyasını DaemonSet öğesinin yaratıldığı instana-agent ad alanını yaratacak şekilde özelleştirin. Bu, aracıları hızlı tanımlama için etiketlemenizi ya da ad alanını silerek bunların tümünü durdurmanızı sağlar.
Instana 'da oturum açın, More-> Agents-> Installing Instana Agents-> Kubernetesseçeneğini tıklatın.
Technology (Teknoloji) listesinden DaemonSet(DaemonSet) seçeneğini belirleyin.
Küme adını ve (isteğe bağlı olarak) aracı bölgesinigirin.
Küme adı (
INSTANA_KUBERNETES_CLUSTER_NAME), bu veri kümesi tarafından izlenen kümenin özelleştirilmiş adıdır.Aracı bölgesi (
INSTANA_ZONE), altyapı eşleminde görüntülenen bölge gruplamasını uyarlamak için kullanılır. Kümenin varsayılan adını da belirler.Diğer gerekli parametrelerin tümü önceden doldurulmuştur.
Kopyala ' yı tıklatın ve YAML dosyasını kaydedin.
Aşağıdaki sarkan tutturucuları gerçek değerlerle değiştirerek YAML dosyasını düzenleyin:
*agentKey: Oluşturulan verilerin gönderilmesi gereken kümeye ilişkin base64 kodlanmış YönOrtamıAna anahtarıecho YOUR_INSTANA_AGENT_KEY | base64*endpointHost: Kuruluşla ilişkili IP adresi ya da anasistem adı.*endpointPort: Kuruluşla ilişkili ağ kapısı.*clusterName: YönOrtamımda kümenize atanacak ad.*zoneName: Kümenizin düğümleriyle ilişkilendirilecek aracı bölgesi .
Instana 'yı Kubernetes Cluster ürününüze kurmak için şu komutu çalıştırın:
kubectl apply -f instana-agent.yamlNot:
instana-agent.yamlürününde yapacağınız ek düzenlemeler için DaemonSet yeniden oluşturulmalı. Değişiklikleri uygulamak için aşağıdaki komutları çalıştırın:kubectl delete -f instana-agent.yaml kubectl apply -f instana-agent.yaml
RBAC
RBAC etkinleştirilmiş olarak 1.8 sürümünden önceki Kubernetes sürümleri için devreye almak üzere, RBAC api sürümü için rbac.authorization.k8s.io/v1 değerini rbac.authorization.k8s.io/v1beta1 ile değiştirin.
Kullanıcıınıza yetki rolleri yaratma yeteneği vermek için, örneğin GKE ' de şu komutu çalıştırın:
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin --user $(gcloud config get-value account)
RBAC etkinleştirilmediyse, ClusterRole ve ClusterRoleBinding dosyasını instana-agent.yaml dosyasından kaldırmanız gerekir.
PodSecurityİlkesi
Bir PodSecurityPolicy ' ı YönOrtamıaracı için etkinleştirmek üzere:
- Helm grafiğimizdetanımlandığı şekilde bir
PodSecurityPolicykaynağı oluşturun. - Bu ilkeyi
instana-agentClusterRoleiçinde yetkilendir . RBAC ' nin yukarıda belirtileninstana-agent.yamldosyasında tanımlandığı şekilde oluşturulanClusterRoleveClusterRoleBindingkaynaklarıyla etkinleştirilmesi gerektiğini unutmayın. - Kümenizde
PodSecurityPolicykabul denetleyicisini etkinleştirin. Var olan kümeler için, kabul denetleyicisini etkinleştirmeden önce ilkelerin eklenmesi ve yetkilendirilmesi önerilir.
Pod Güvenliği Kabul
Instana anasistem aracısı için privileged Pod Güvenlik Standardı gerekir. Pod Güvenlik Standardını yerleşik bir Pod Güvenlik Kabul denetleyicisiyle uygulamak için aşağıdaki komutu çalıştırın:
kubectl label --overwrite ns instana-agent pod-security.kubernetes.io/enforce=privileged
Anasistem aracısının durumunun denetlenmesi
Anasistem aracısını kurduktan sonra, instana kullanıcı arabiriminde ya da anasistemde anasistem aracısının durumunu denetleyebilirsiniz. Daha fazla bilgi için Anasistem aracısının durumunun denetlenmesibaşlıklı konuya bakın.
İzlenen uygulamalar için ağ erişimi yapılandırılması
Bazı uygulama tiplerinin önce aracıya ulaşması gerekir. Şu anda
- Node.js
- Git
- Ruby
- Python
- .NET Çekirdeği
Bu uygulamaların, aracının hangi IP ' de dinlediğini bilmeleri gerekir. Aracı anasistem IP 'sini otomatik olarak dinleyeceği için, bunu bir ortam değişkeninde uygulama bölmesine geçirmek için aşağıdaki Aşağı doğru API parçacığını kullanın:
spec:
containers:
env:
- name: INSTANA_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
Ana düğümleri izle
Varsayılan olarak, devreye alma çoğu ana düğümde ayarlanan varsayılan taint node-role.kubernetes.io/master:NoSchedule ' e uyduğu için aracı Kubernetes ana düğümlerinde zamanlanmaz. Bunların üzerine yazmak için aracı veri kümesine aşağıdaki toleransı ekleyin:
kind: DaemonSet
metadata:
name: instana-agent
namespace: instana-agent
spec:
template:
...
spec:
tolerations:
- key: "node-role.kubernetes.io/master"
effect: "NoSchedule"
operator: "Exists"
...
Daha doğrudan denetim için aracıyı ana düğümlere ayrı olarak kurun. Ortamınıza ilişkin öneriler için lütfen destek bölümüyle iletişim kurun.
İzleyici Kubernetes NGINX Giriş
Kubernetes NGINX Ingresinin ve NGINX ölçümlerinin yakalanması için aracımızın nasıl yapılandırılacağı hakkında yönergeler için İzleme NGINX sayfasına bakın. Kubernetes NGINX Ingress, OpenTracing projesi aracılığıyla da izlenebilir, bunun nasıl ayarlanacağına ilişkin yönergeler için Distributed Tracing for NGINX Ingress başlıklı konuya bakın.
Sırları
Kubernetes , hassas bilgilerin depolanması ve yönetilmesi için yerleşik desteğe sahiptir. Ancak, bu yerleşik yeteneği kullanmazsanız, ancak yine de Kubernetes kaynaklarındaki hassas verileri düzenleme yeteneğine gereksinim duyarsanız, aracı güvenlik dizgileri yapılandırması bunu destekleyecek şekilde genişletilir.
Seçilen Kubernetes kaynakları (özellikle ek açıklamalar ve kapsayıcı ortam değişkenleri) için hassas veri düzeltmesini etkinleştirmek üzere, INSTANA_KUBERNETES_REDACT_SECRETS ortam değişkenini aşağıdaki aracı yaml parçacıkında gösterildiği gibi true olarak ayarlayın:
spec:
containers:
env:
- name: INSTANA_KUBERNETES_REDACT_SECRETS
value: "true"
Daha sonra, aracıyı aracı güvenlik sırları yapılandırmasındaaçıklandığı gibi, eşleşmesi istenen güvenlik sırları listesiyle yapılandırın.
Bu yeteneğin etkinleştirilmesi Kubernetes algılayıcısında performansın düşmesine neden olabilir.
Birden çok arka uca raporla
Kubernetes aracısından birden çok arka uca raporlamayı etkinleştirmek için bkz. docker aracısı yapılandırması.
YönOrtamıaracı güvenliği ile ilgili önemli noktalar
Instana aracısının, konuşlandırıldığı düğümdeki köprü ağlarındaki uygulama bölmelerine bağlanması ve kendi bağlantı noktalarını listemesi/açması gerektiğinden, altyapı ilişkilendirmesi için anasistem ağ erişimi ve anasistem düzeyinde işlem tanıtıcısı araması gerekir. Bu, Linux & Unix üzerinde verilen izinler anasistem ortamlarına eşdeğerdir ve DaemonSet konuşlandırmasında aşağıdaki işaretlerin ayarlanmasını gerektirir:
privileged: true, üst katman olmadan/proc'a tam erişim, JVM eki için UID/GID' yi değiştirme ve uygulama ad alanlarına erişim sağlar.hostPID: true, altyapı ilişkilendirmesi için gerekli olan/prociçinde anasistem düzeyinde PID ' ler sağlar.hostNetwork: true, anasistem düzeyi & köprü ağ arabirimlerine erişim sağlar.
Ayrıca, OpenShift' e konuşlandırma sırasında, sözü edilen izinlere izin vermek için Güvenlik Bağlamı Kısıtlaması (SCC) privileged olarak ayarlanır.
Kubernetes algılayıcısı, Kubernetes kümesinde çalışan tüm kaynakları ve uygulamaları saptamak ve doğru izlendiğinden emin olmak için aşağıdaki küme rolü kurallarını gerektirir:
rules:
- nonResourceURLs:
- "/version"
- "/healthz"
verbs: ["get"]- apiGroups: ["batch"]
resources:
- "jobs"
- "cronjobs"
verbs: ["get", "list", "watch"]
- apiGroups: ["extensions"]
resources:
- "deployments"
- "replicasets"
- "ingresses"
verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
resources:
- "deployments"
- "replicasets"
- "daemonsets"
- "statefulsets"
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- "namespaces"
- "events"
- "services"
- "endpoints"
- "nodes"
- "pods"
- "replicationcontrollers"
- "componentstatuses"
- "resourcequotas"
- "persistentvolumes"
- "persistentvolumeclaims"
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- "endpoints"
verbs: ["create", "update", "patch"]
- apiGroups: ["networking.k8s.io"]
resources:
- "ingresses"
verbs: ["get", "list", "watch"]
Örnek YAML dosyası
Tipik bir instana-agent.yaml dosyası, YönOrtamıana genel GitHub havuzu biçiminde karşıdan yüklenebilir. Bu grafik, tipik varsayılan değerlerle Helm grafiğinde görüntülenir. Tek tek özellikler, sonraki adımda olduğu gibi sarkan tutturucular olarak tanımlanır.
Bu dosyayı karşıdan yükleyin ve en son changelogdosyasını görüntüleyin.