我已经使用 Airflow 的 Stable Helm 图表在 AWS 的Elastic Kubernetes 服务上部署了Apache Airflow。我的目标是创建一个 Ingress 以允许其他人通过他们的浏览器访问气流网络服务器 UI。值得一提的是,我正在使用 AWS Fargate 在 EKS 上进行部署。我对 Kubernetes 的经验有点有限,之前我自己也没有设置过 Ingress。
我目前能够通过端口转发(如kubectl port-forward airflow-web-pod 8080:8080
)连接到气流网络服务器吊舱。我曾尝试通过 Helm 图表设置 Ingress(此处记录)。之后:
运行kubectl get ingress -n dp-airflow
我得到:
NAME CLASS HOSTS ADDRESS PORTS AGE
airflow-flower <none> foo.bar.com 80 3m46s
airflow-web <none> foo.bar.com 80 3m46s
Run Code Online (Sandbox Code Playgroud)
然后运行kubectl describe ingress airflow-web -n dp-airflow
我得到:
Name: airflow-web
Namespace: dp-airflow
Address:
Default backend: default-http-backend:80 (<error: endpoints …
Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-elb kubernetes kubernetes-ingress amazon-eks
我已经将初始的图像拆分出来azure-pipelines.yml
以使用模板、迭代等...无论出于何种原因,尽管使用了latest
标签和/或imagePullPolicy: Always
.
另外,我基本上有两个PR
管道Release
:
PR
当提交 PR 请求合并到 时触发production
。它会自动触发此管道来运行单元测试、构建 Docker 映像、进行集成测试等,然后如果一切都通过,则将映像推送到 ACR。PR
管道通过并且 PR 获得批准时,它会被合并到其中,production
然后触发Release
管道。这是我的部署清单之一的示例k8s
(管道说明unchanged
何时应用这些清单):
apiVersion: apps/v1
kind: Deployment
metadata:
name: admin-v2-deployment-prod
namespace: prod
spec:
replicas: 3
selector:
matchLabels:
component: admin-v2
template:
metadata:
labels:
component: admin-v2
spec:
containers:
- name: admin-v2
imagePullPolicy: Always
image: appacr.azurecr.io/app-admin-v2:latest
ports:
- containerPort: 4001
---
apiVersion: v1
kind: Service
metadata:
name: admin-v2-cluster-ip-service-prod
namespace: …
Run Code Online (Sandbox Code Playgroud) 我正在使用 terraform 创建 Kubernetes 命名空间。下面的示例
resource "kubernetes_namespace" "test1" {
metadata {
name = local.ns_name
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 terraform 按照此链接创建蓝/绿类型的部署。作为其中的一部分,我现在创建了两个 kubernetes 集群。一个是蓝色的,另一个是绿色的,现在我有两个 kubernetes 提供者
provider "kubernetes" {
alias = "kubernetes_blue"
}
provider "kubernetes" {
alias = "kubernetes_green"
}
Run Code Online (Sandbox Code Playgroud)
我想了解是否有一种方法,我可以有一些条件kubernetes_namespace
,根据标志var.enable_green_side
和var.enable_blue_side
,我可以在多个 kubernetes 集群中创建相同的命名空间,而不必重复整个资源块,如下所示
resource "kubernetes_namespace" "test1" {
metadata {
name = local.ns_name
}
provider = kubernetes.kubernetes_blue
}
resource "kubernetes_namespace" "test2" {
metadata {
name = local.ns_name
}
provider = kubernetes.kubernetes_green
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我有一个网络应用程序,到目前为止一直通过云运行运行,但没有访问限制。现在它应该只对某些用户可用。我阅读了https://cloud.google.com/run/docs/authentication/end-users并尝试了两种提到的方法:Google-Sign-In 和“Identity Platform”教程。
如果我理解正确的话,您必须在这两种变体中对实际用户进行编程。例如,确定哪些电子邮件地址可以访问应用程序等。我一直在寻找一种声明性方式,理想情况下,我只维护允许的电子邮件地址列表,并且“云运行应用程序”仅“神奇地”链接到此。结果,只有这些用户才能访问 Web 应用程序。这似乎不可能?
理想情况下,实际应用程序根本不应该改变,上游层将负责身份验证和授权,可能与“身份平台”结合使用。
诚挚的问候,欢迎任何提示托马斯
如何定义网络策略来防止同一 K8s 集群内不同命名空间中的 pod 之间进行通信?
kubernetes google-kubernetes-engine kubernetes-networkpolicy
我正在寻找在不停机的情况下为 Azure AKS 升级 k8s 版本的方法,并发现了这篇令人惊叹的博客文章https://omichels.github.io/zerodowntime-aks.html但我只在开始时遇到错误
因此,当前在我的地区运行的 k8s 版本不再可用。当我尝试创建临时节点池时出现以下错误
(AgentPoolK8sVersionNotSupported) Version 1.19.6 is not supported in this region.
Please use [az aks get-versions] command to get the supported version list in this region.
For more information, please check https://aka.ms/supported-version-list
Run Code Online (Sandbox Code Playgroud)
如何才能实现零停机升级?
我正在尝试在 minikube 中应用入口规则,但收到此错误
error: resource mapping not found for name: "dashboard-ingress" namespace: "kubernetes-dashboard" from "Desktop/minikube/dashboard-ingress.yaml": no matches for kind "Ingress" in version "networking.k8.io/v1"
Run Code Online (Sandbox Code Playgroud)
仪表板-ingress.yaml
apiVersion: networking.k8.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
spec:
rules:
- host: dashboard.com
http:
paths:
- backend:
serviceName: kubernetes-dashboard
servicePort: 80
Run Code Online (Sandbox Code Playgroud) 如果反应中满足条件,如何将 const 重新分配为 true?它不断显示错误“displayInternalForm”已声明,但其值从未被读取。
export async function getStaticProps({ params }) {
const displayInternalForm = false;
const internalJob = internalcategory.categories.find((cat) =>
cat.id?.includes("a5c26877-e89c-440b-b7a0-31552865fff5"));
if (internalJob !== undefined) {
// It is not reading this line of code.
const displayInternalForm = true;
}
}
Run Code Online (Sandbox Code Playgroud) 在看到 Microsoft 给人们升级 Internet Explorer 6 时遇到的一些问题以及 Firefox 如何进行自动更新后,我开始考虑我们的 Web 应用程序的推送式升级系统的优点和缺点。您认为网络应用程序应该具有自动更新功能吗?为什么或者为什么不?如果是,需要考虑哪些问题以及您将采用哪些策略来使升级尽可能无缝?您是否可以指出具有类似系统的网络应用程序的现有示例?
编辑:澄清一下,网络应用程序是一个带有网站前端的内容管理系统,类似于 Joomla 或 Drupal。我们将 CMS 作为产品提供,因此任何更新都会在我们客户的服务器上安装最新版本的应用程序。
有人有 OPOS 的经验吗?我无法让我的应用程序识别在 64 位计算机上运行的设备的 LDN。
我已经知道 OleforRetail 的内容现在位于注册表中的 Wow6432Node 下。我怀疑通用控件因此无法找到 LDN。有什么解决方法吗?
如果做不到这一点,是否有一个集中的 OPOS 开发论坛?
顺便说一句:我使用 Monroe Consulting 提供的通用控件。
谢谢!
kubernetes ×6
azure ×2
azure-aks ×2
64-bit ×1
amazon-eks ×1
amazon-elb ×1
auto-update ×1
azure-devops ×1
minikube ×1
next.js ×1
opos ×1
react-native ×1
reactjs ×1
terraform ×1