- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新
我做了
kubectl获取入口路由-
NAMESPACE NAME AGE
example example-ingress 44h
example example-ingress-route 40h
然后我做了
ingress.extensions "example-ingress" deleted
现在
http://example.com给出了404
E0916 10:48:39.456348 1 reflector.go:153] pkg/mod/k8s.io/client-go@v0.17.3/tools/cache/reflector.go:105: Failed to list *v1alpha1.IngressRoute: v1alpha1.IngressRouteList.Items: []v1alpha1.IngressRoute: v1alpha1.IngressRoute.Spec: v1alpha1.IngressRouteSpec.TLS: readObjectStart: expect { or n, but found [, error found in #10 byte of ...|}],"tls":[{"hosts":[|..., bigger context ...|ices":[{"name":"example-app","port":80}]}],"tls":[{"hosts”:[“example.com"],"secretName|...
Verified by: CN=TRAEFIK DEFAULT CERT
DNS Name 31047792e374617b441b6f82cacde627.1dc1fc2f960b83b2f533f2ff411e82bf.traefik.default
NAME READY AGE
example-issuer-staging True 15h
NAME READY SECRET AGE
domain-com True domain-com-tls 15h
* Trying domain-ip…
* TCP_NODELAY set
* Connected to example.com (domain-ip) port 80 (#0)
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=UTF-8
< Date: Tue, 15 Sep 2020 15:41:45 GMT
< Server: nginx
< X-Powered-By: PHP/7.4.9
< Content-Length: 5
<
* Connection #0 to host example.com left intact
hello* Closing connection 0
curl -v https://example.com
* Trying domain-ip...
* TCP_NODELAY set
* Connected to example.com (domain-ip) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
NAME TYPE DATA AGE
domain-com-tls kubernetes.io/tls 2 19h
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
example example-ingress <none> example.com 80, 443 13d
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cert-manager cert-manager ClusterIP 10.245.95.66 <none> 9402/TCP 16h
cert-manager cert-manager-webhook ClusterIP 10.245.86.7 <none> 443/TCP 16h
default kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 23d
example example-app ClusterIP 10.245.132.184 <none> 80/TCP,443/TCP 15m
kube-system kube-dns ClusterIP 10.245.0.10 <none> 53/UDP,53/TCP,9153/TCP 23d
routing traefik LoadBalancer 10.245.21.52 external-ip 80:31635/TCP,443:31142/TCP 2d1
Name: domain-com
Namespace: example
Labels: <none>
Annotations: <none>
API Version: cert-manager.io/v1
Kind: Certificate
Metadata:
Creation Timestamp: 2020-09-15T17:41:27Z
Generation: 1
Managed Fields:
API Version: cert-manager.io/v1
Fields Type: FieldsV1
fieldsV1:
f:status:
.:
f:conditions:
f:notAfter:
f:notBefore:
f:renewalTime:
Manager: controller
Operation: Update
Time: 2020-09-15T17:41:27Z
API Version: cert-manager.io/v1
Fields Type: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.:
f:kubectl.kubernetes.io/last-applied-configuration:
f:spec:
.:
f:commonName:
f:dnsNames:
f:issuerRef:
.:
f:kind:
f:name:
f:secretName:
Manager: kubectl
Operation: Update
Time: 2020-09-15T17:41:27Z
Resource Version: 2018179
Self Link: /apis/cert-manager.io/v1/namespaces/example/certificates/domain-com
UID: 1ddb2c20-0fa5-414b-af4f-32c4e02cf41f
Spec:
Common Name: example.com
Dns Names:
example.com
Issuer Ref:
Kind: Issuer
Name: example-issuer
Secret Name: domain-com-tls
Status:
Conditions:
Last Transition Time: 2020-09-15T17:41:27Z
Message: Certificate is up to date and has not expired
Reason: Ready
Status: True
Type: Ready
Not After: 2020-12-14T12:11:24Z
Not Before: 2020-09-15T12:11:24Z
Renewal Time: 2020-11-14T12:11:24Z
Events: <none>
Name: example-app-main-g9tzn
Namespace: example
Priority: 0
Node: cluster-name-3gkmj/10.110.0.5
Start Time: Wed, 16 Sep 2020 11:16:06 +0200
Labels: app=example-app
Annotations: <none>
Status: Running
IP: 10.244.0.75
IPs:
IP: 10.244.0.75
Controlled By: ReplicaSet/example-app-main
Containers:
example-app-container:
Container ID: docker://bede3ad52bc2d54d343bd0c8ec36ad39854b65e97522f9e0153b6d33f18d05bf
Image: richarvey/nginx-php-fpm:1.10.3
Image ID: docker-pullable://richarvey/nginx-php-fpm@sha256:140e92581255ce5e19d144b883560fa891a632fedaf68910ba4b65550d5b12a5
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Wed, 16 Sep 2020 11:16:10 +0200
Ready: True
Restart Count: 0
Environment:
SSH_KEY: secret
GIT_REPO: login-details:project-name/source.git
GIT_EMAIL: user@example.com
GIT_NAME: user
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-bphcm (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-bphcm:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-bphcm
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 21m default-scheduler Successfully assigned example/example-app-main-g9tzn to cluster-3gkmj
Normal Pulling 21m kubelet, cluster-3gkmj Pulling image "richarvey/nginx-php-fpm:1.10.3"
Normal Pulled 21m kubelet, cluster-3gkmj Successfully pulled image "richarvey/nginx-php-fpm:1.10.3"
Normal Created 21m kubelet, cluster-3gkmj Created container example-app-container
Normal Started 21m kubelet, cluster-3gkmj Started container example-app-container
Name: traefik
Namespace: routing
CreationTimestamp: Sun, 13 Sep 2020 18:14:53 +0200
Labels: app.kubernetes.io/instance=traefik
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=traefik
helm.sh/chart=traefik-9.1.1
Annotations: deployment.kubernetes.io/revision: 1
meta.helm.sh/release-name: traefik
meta.helm.sh/release-namespace: routing
Selector: app.kubernetes.io/instance=traefik,app.kubernetes.io/name=traefik
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 1 max surge
Pod Template:
Labels: app.kubernetes.io/instance=traefik
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=traefik
helm.sh/chart=traefik-9.1.1
Service Account: traefik
Containers:
traefik:
Image: traefik:2.2.8
Ports: 9000/TCP, 8000/TCP, 8443/TCP
Host Ports: 0/TCP, 0/TCP, 0/TCP
Args:
--global.checknewversion
--global.sendanonymoususage
--entryPoints.traefik.address=:9000/tcp
--entryPoints.web.address=:8000/tcp
--entryPoints.websecure.address=:8443/tcp
--api.dashboard=true
--ping=true
--providers.kubernetescrd
--providers.kubernetesingress
--accesslog=true
--accesslog.fields.defaultmode=keep
--accesslog.fields.headers.defaultmode=drop
Liveness: http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=3
Readiness: http-get http://:9000/ping delay=10s timeout=2s period=10s #success=1 #failure=1
Environment: <none>
Mounts:
/data from data (rw)
/tmp from tmp (rw)
Volumes:
data:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
tmp:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: traefik-7bfff8d8f6 (1/1 replicas created)
Events: <none>
example
- example-ingress-route.yml
- example-app.yml
- example-issuer.yml
- example-service.yml
- example-solver.yml
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
namespace: example
name: example-ingress-route
annotations:
kubernetes.io/ingress.class: "traefik"
cert-manager.io/cluster-issuer: example-issuer
traefik.ingress.kubernetes.io/router.entrypoints: web, websecure
traefik.frontend.redirect.entryPoint: https
spec:
entryPoints:
- web
- websecure
routes:
- match: Host(`example.com`)
kind: Rule
services:
- name: example-app
namespace: example
port: 443
tls:
hosts:
- example.com
options:
namespace: example
secretName: domain-com-tls
apiVersion: apps/v1
kind: ReplicaSet
metadata:
namespace: example
name: 'example-app-main'
labels:
app: 'example-app'
tier: 'frontend'
spec:
replicas: 1
selector:
matchLabels:
app: 'example-app'
template:
metadata:
labels:
app: 'example-app'
spec:
containers:
- name: example-app-container
image: richarvey/nginx-php-fpm:1.10.3
imagePullPolicy: Always
env:
- name: SSH_KEY
value: ‘hidden’
- name: GIT_REPO
value: 'git@gitlab.example.com:project//source.git'
- name: GIT_EMAIL
value: ‘hidden’
- name: GIT_NAME
value: ‘hidden’
ports:
- containerPort: 80
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: example-issuer
namespace: example
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: letsencrypt@example.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: domain-com-tls
# Enable the HTTP-01 challenge provider
solvers:
# An empty 'selector' means that this solver matches all domains
- http01:
ingress:
class: traefik
apiVersion: v1
kind: Service
metadata:
namespace: example
name: 'example-app'
spec:
type: ClusterIP
ports:
- protocol: TCP
name: http
port: 80
targetPort: 80
- protocol: TCP
name: https
port: 443
targetPort: 443
selector:
app: 'example-app'
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: domain-com
namespace: example
spec:
secretName: domain-com-tls
issuerRef:
name: example-issuer
kind: Issuer
commonName: example.com
dnsNames:
- example.com
最佳答案
您的YAML错误
example-ingress-route.yml
中,您有"cert-manager.io/cluster-issuer: example-issuer"
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
namespace: example
name: example-ingress-route
annotations:
kubernetes.io/ingress.class: "traefik"
cert-manager.io/cluster-issuer: example-issuer
但是您已经用
example-issuer.yml
创建了一个发行者
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: example-issuer
namespace: example
您可以在
example-issuer.yml
中更改为ClusterIssuers
关于kubernetes - 只能通过HTTP而不是HTTPS到达我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63917943/
我正在通过 labrepl 工作,我看到了一些遵循此模式的代码: ;; Pattern (apply #(apply f %&) coll) ;; Concrete example user=> (a
我从未向应用商店提交过应用,但我会在不久的将来提交。 到目前为止,我对为 iPhone 而非 iPad 进行设计感到很自在。 我了解,通过将通用PAID 应用放到应用商店,客户只需支付一次就可以同时使
我有一个应用程序,它使用不同的 Facebook 应用程序(2 个不同的 AppID)在 Facebook 上发布并显示它是“通过 iPhone”/“通过 iPad”。 当 Facebook 应用程序
我有一个要求,我们必须通过将网站源文件保存在本地 iOS 应用程序中来在 iOS 应用程序 Webview 中运行网站。 Angular 需要服务器来运行应用程序,但由于我们将文件保存在本地,我们无法
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
假设我有一个安装在用户设备上的 Android 应用程序 A,我的应用程序有一个 AppWidget,我们可以让其他 Android 开发人员在其中以每次安装成本为基础发布他们的应用程序推广广告。因此
Secrets of the JavaScript Ninja中有一个例子它提供了以下代码来绕过 JavaScript 的 Math.min() 函数,该函数需要一个可变长度列表。 Example:
当我分别将数组和对象传递给 function.apply() 时,我得到 NaN 的 o/p,但是当我传递对象和数组时,我得到一个数字。为什么会发生这种情况? 由于数组也被视为对象,为什么我无法使用它
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章ASP转换格林威治时间函数DateDiff()应用由作者收集整理,如果你
我正在将列表传递给 map并且想要返回一个带有合并名称的 data.frame 对象。 例如: library(tidyverse) library(broom) mtcars %>% spl
我有一个非常基本的问题,但我不知道如何实现它:我有一个返回数据框,其中每个工具的返回值是按行排列的: tmp<-as.data.frame(t(data.frame(a=rnorm(250,0,1)
我正在使用我的 FB 应用创建群组并邀请用户加入我的应用群组,第一次一切正常。当我尝试创建另一个组时,出现以下错误: {"(OAuthException - #4009) (#4009) 在有更多用户
我们正在开发一款类似于“会说话的本”应用程序的 child 应用程序。它包含大量用于交互式动画的 JPEG 图像序列。 问题是动画在 iPad Air 上播放正常,但在 iPad 2 上播放缓慢或滞后
我关注 clojure 一段时间了,它的一些功能非常令人兴奋(持久数据结构、函数式方法、不可变状态)。然而,由于我仍在学习,我想了解如何在实际场景中应用,证明其好处,然后演化并应用于更复杂的问题。即,
我开发了一个仅使用挪威语的应用程序。该应用程序不使用本地化,因为它应该仅以一种语言(挪威语)显示。但是,我已在 Info.plist 文件中将“本地化 native 开发区域”设置为“no”。我还使用
读完 Anthony's response 后上a style-related parser question ,我试图说服自己编写单体解析器仍然可以相当紧凑。 所以而不是 reference ::
multicore 库中是否有类似 sapply 的东西?还是我必须 unlist(mclapply(..)) 才能实现这一点? 如果它不存在:推理是什么? 提前致谢,如果这是一个愚蠢的问题,我们深表
我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,它们不会随着控制台继续滚动而丢失)。一种方法是使用 sink() 和 file.show()。例如: y <- rnorm(100); x <- r
我有一个如下所示的 spring mvc Controller @RequestMapping(value="/new", method=RequestMethod.POST) public Stri
我正在阅读 StructureMap关于依赖注入(inject),首先有两部分初始化映射,具体类类型的接口(interface),另一部分只是实例化(请求实例)。 第一部分需要配置和设置,这是在 Bo
我是一名优秀的程序员,十分优秀!