我在ACS(Azure容器服务)上使用Windows + kubernetes集群.关于ACS中代理/工作节点的自动扩展,我几乎没有任何疑问.
假设我有一个包含1个主节点和5个工作节点的集群.我有200个运行的pod,这些pod分布在5个工作节点上,并使用这5个节点的资源.现在,如果我部署新的pod或扩展需要更多资源的运行pod,那么ACS是否可以根据资源使用情况将工作节点自动扩展为7个工作节点?
同样的情况,如果资源使用减少,ACS可以将工作节点从7个节点除垢到3个工作节点吗?
我的问题与kubernetes提供的pod的自动扩展无关,我在谈论由ACS管理的工作者/代理节点的自动扩展.
azure azure-virtual-machine kubernetes azure-container-service
我按照以下说明创建了一个ACS Kubernetes集群:https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough .
我看到主节点有一个公共IP,我可以使用ssh进入主节点azureuser.但是常规节点没有公共IP,我看不出如何从主节点ssh到常规节点.
如何通过SSH连接到常规节点?
我使用AKS服务创建了一个Kubernetes集群。
当我执行“ kubectl获取节点”时,我希望看到主节点。但是,我没有。我只看到代理(角色)节点。
是否可以查看主节点?我要执行此操作的原因是要检查集群中是否启用了RBAC,如果未启用,请启用它。
谢谢。
我打算在我的新AKS集群上安装Istio.但是,在Istio的先决条件中,提到K8S群集应该启用RBAC.但是,我读到AKS(预览版)没有启用它.这是真的?我可以选择在AKS上尝试Istio.
我有一个使用 Azure 存储的 ASP .Net Core 3.1 Web API。为此,它使用了 Microsoft.Azure.Storage.Blob 库。NuGet 包管理器通知我该包已被弃用,我应该使用 Azure.Storage.Blobs。我这样做了,并继续修复由于此更改而导致的所有损坏代码。在我找到为客户端生成共享访问签名 (SAS) 的代码之前,我没有遇到很多问题。无论如何,我设法通过以下代码使其工作:
https://docs.microsoft.com/en-us/azure/storage/blobs/sas-service-create?tabs=dotnet
private static Uri GetServiceSasUriForContainer(BlobContainerClient containerClient,
string storedPolicyName = null)
{
// Check whether this BlobContainerClient object has been authorized with Shared Key.
if (containerClient.CanGenerateSasUri)
{
// Create a SAS token that's valid for one hour.
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = containerClient.Name,
Resource = "c"
};
if (storedPolicyName == null)
{
sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
sasBuilder.SetPermissions(BlobContainerSasPermissions.Read);
}
else
{
sasBuilder.Identifier = storedPolicyName;
} …Run Code Online (Sandbox Code Playgroud) 我为Kubernetes仪表板提供了以下服务
Name: kubernetes-dashboard
Namespace: kube-system
Labels: k8s-app=kubernetes-dashboard
kubernetes.io/cluster-service=true
Annotations: kubectl.kubernetes.io/last-applied-configuration={"kind":"Service","apiVersion":"v1","metadata":{"name":"kubernetes-dashboard","namespace":"kube-system","creationTimestamp":null,"labels":{"k8s-app":"k...
Selector: k8s-app=kubernetes-dashboard
Type: NodePort
IP: 10.0.106.144
Port: <unset> 80/TCP
NodePort: <unset> 30177/TCP
Endpoints: 10.244.0.11:9090
Session Affinity: None
Events: <none>
Run Code Online (Sandbox Code Playgroud)
根据文件,我跑了
az acs kubernetes browse
Run Code Online (Sandbox Code Playgroud)
但是我也希望在集群外部访问它.describe输出表明它是在端口30177上使用NodePort公开的.
但是我无法访问它 http://<any node IP>:30177
我目前正在使用Azure AKS.
我有一个前端应用程序,它使用LoadBalancer来拥有一个公共IP来访问该服务.
我应该将我的域名指向公共IP地址吗?
由于IP是动态的,如果端口被破坏并再次重新创建,则会生成新的IP.
我应该使用Ingress/Nginx控制器来管理IP吗?
是否可以扩展ACI运行容器?
问题:
我们有一些过时的Cloud Services(.NET Framework v4.7.1)正在迁移到Docker容器,现在我们已经成功地使它们运行并在Azure容器实例中进行响应,但需要能够对其进行扩展的能力负载和弹性。
这是一个较大项目的一部分,我们还在k8s中运行更新的解决方案-所有.NET Core 2微服务。
我们最终的目标是当我们能够在同一主服务器上运行Windows和Linux节点时,将它们引入主要的k8s解决方案中,从而使我们能够在同一集群中运行两个项目。
containers azure azure-container-service windows-container azure-container-instances
该文档介绍了如何将 ACR 附加到现有 AKS 群集,https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration
附上第一个 ACR:
az account set --subscription acr-subscription
$ACR_ID = $(az acr show --name $ACRName --resource-group $ACRResourceGroupName --query "id" --output tsv)
az account set --subscription aks-subscription
az aks update --name cluster-name --resource-group cluster-resource --attach-acr $ACR_ID
Run Code Online (Sandbox Code Playgroud) 我们有一个 SpringBoot 应用程序,需要位于“/secrets/app.keystore.jks”的密钥库文件才能运行。
我们希望在 Azure 应用服务 Linux 实例上的容器中运行该应用程序。出于安全原因,我们不想将“/secrets/app.keystore.jks”文件包含在容器本身中。相反,我们设法将文件上传到应用程序服务上的“/home/site/wwwroot/secrets/”文件夹。
我们使用以下命令来启动应用服务上的容器
docker run -d myacr.azurecr.io/myAPp:latest -p 80:80 --name myApp
-e WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE -v /home/site/wwwroot/secrets:/secrets
Run Code Online (Sandbox Code Playgroud)
在应用程序服务的日志中,我们有错误:
java.lang.IllegalStateException: java.io.IOException: 无法将 /secrets/app.keystore.jks 作为文件、类路径资源或 URL 打开。
在我看来,卷未设置,应用程序无法访问文件“/secrets/app.keystore.jks”
有谁知道如何设置卷以便容器中的应用程序可以访问主机上的文件?