最近我正在将一个项目转移到 Kubernetes 并使用 Traefik 作为入口控制器。对于 Traefik,我使用了 Traefik Kubernetes Ingress 提供程序进行路由。当我尝试添加 Traefik 仪表板时,我发现它似乎只能使用 IngressRoute 添加(即使用 Kubernetes CRD 作为提供程序)。
我有几个问题:
我正在 Grafana 上开发基于 Loki 的仪表板。我有一个用于在 Loki 跟踪日志中搜索文本的面板,当前查询如下:
{job="abc-service"}
|~ "searchTrace"
|json
|line_format "{if .trace_message}} Message: \t{{.trace_message}} {{end}}"
Run Code Online (Sandbox Code Playgroud)
其中searchTrace是“文本框”类型的变量,供用户输入搜索文本。
我想包含另一个变量skipTestLog来跳过某些测试 cron 任务创建的日志。skipTestLog是两个选项的自定义变量:Yes,No.
假设测试 cron 任务创建的日志包含解析器后面CronTest字段中的文本,是否有任何方法可以根据所选的值将其过滤掉?trace_messagejsonskipTestLog
我在带有“driver=none”选项的笔记本电脑上使用 Minikube。当我尝试启用 ingress 时,出现以下错误:
$ minikube addons enable ingress
? Exiting due to MK_USAGE: Due to networking limitations of driver none, ingress addon is not supported. Try using a different driver.
Run Code Online (Sandbox Code Playgroud)
经过一番谷歌搜索,我发现 Ingress 插件停止使用从 Minikube v1.12.x 开始的“无”VM 驱动程序,我使用的是 v1.13.1。(请参考:https : //github.com/kubernetes/minikube/issues/9322)
我想知道是否还有其他方法可以使用“driver=none”选项在 Minikube 上安装“原生”入口?
我想在 configMap(或秘密)中设置一个布尔变量:
apiVersion: v1
kind: ConfigMap
metadata:
name: env-config
namespace: mlo-stage
data:
webpack_dev_server: false
Run Code Online (Sandbox Code Playgroud)
但是当我应用它时,我收到以下错误:
The request is invalid: patch: Invalid value: "map[data:map[webpack_dev_server:false] metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:{ blah blah blah}]]]": unrecognized type: string
Run Code Online (Sandbox Code Playgroud)
我试图将值更改为 Off/No/False,但都存在同样的问题。
好像data map中key的值只能是字符串,我试过把值改成“false”,yaml文件没问题,但是后来变量变成了字符串而不是boolean。
如果我想传递一个布尔值作为值应该怎么做?
kubernetes kubernetes-deployment kubernetes-secrets configmap
我在 Kubernetes 上使用 Traefik (v2.2),使用通配符域证书进行 HTTPS 访问。
以下是我的 Traefik 部署和 Ingress 配置:
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: ingress-traefik
name: traefik
labels:
app: traefik
spec:
replicas: 1
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:v2.2
ports:
- name: web
containerPort: 80
- name: websecure
containerPort: 443
- name: admin
containerPort: 8080
args:
- --providers.kubernetesingress
- --entrypoints.web.Address=:80
- --entrypoints.websecure.Address=:443
- --ping.entryPoint=web
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-ingress
annotations:
kubernetes.io/ingress.class: …Run Code Online (Sandbox Code Playgroud) http-status-code-404 kubernetes traefik kubernetes-ingress traefik-ingress
我构建了一个前端 Vue.js 应用程序,在 kubernetes 环境下的 docker 容器上运行。后端也在同一个 kubernetes 集群中(我在该项目中使用 Minikube)。net::ERR_NAME_NOT_RESOLVED运行时连接后端容器时
出错:
在容器内部,使用curl连接到后端没有问题:
$ kubectl exec -it deployment/hpl-browser-deployment -- sh
/ # curl http://hpl-manager-service:2354
{
"message": "Manager status",
"state": "IDLE"
}
Run Code Online (Sandbox Code Playgroud)
我用于axiosapi 服务:
import axios from 'axios';
export default class APIService {
API_URL = '';
constructor(apiAddress) {
this.API_URL = apiAddress;
}
async get() {
console.log('ApiService: get()');
try {
const response = await axios.get(this.API_URL);
console.log(`ApiService: get result: ${response.data}`);
return response.data;
} catch (error) {
console.error(error);
return error;
} …Run Code Online (Sandbox Code Playgroud) 在 Kubernetes 环境中启动 Traefik 仪表板时遇到问题,以下是我的 traefik 部署设置:
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: ingress-traefik
name: traefik
labels:
app: traefik
spec:
replicas: 1
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:v2.2
ports:
- name: web
containerPort: 80
- name: websecure
containerPort: 443
- name: admin
containerPort: 8080
args:
- --api
- --api.dashboard=true
- --providers.kubernetesingress
- --providers.kubernetescrd
- --entrypoints.web.Address=:80
- --entrypoints.websecure.Address=:443
- --ping.entryPoint=web
- --log.level=debug
Run Code Online (Sandbox Code Playgroud)
和仪表板 ingressRoute 设置:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute …Run Code Online (Sandbox Code Playgroud) kubernetes ×6
traefik ×3
axios ×1
configmap ×1
docker ×1
grafana ×1
grafana-loki ×1
logql ×1
minikube ×1
vue.js ×1