我有一个包含以下条目的docker compose文件
version: '2.1'
services:
mysql:
container_name: mysql
image: mysql:latest
volumes:
- ./mysqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 'password'
ports:
- '3306:3306'
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3306"]
interval: 30s
timeout: 10s
retries: 5
test1:
container_name: test1
image: test1:latest
ports:
- '4884:4884'
- '8443'
depends_on:
mysql:
condition: service_healthy
links:
- mysql
Run Code Online (Sandbox Code Playgroud)
Test-1容器依赖于mysql,并且需要启动并运行。
在docker中,可以使用运行状况检查和Depends_on属性来控制它。kubernetes中的运行状况检查等效项是我已经创建的readinessprobe,但是我们如何控制吊舱中容器的启动?
任何方向对此表示极大的赞赏。
我的Kubernetes文件:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: deployment
spec:
replicas: 1
template:
metadata:
labels:
app: deployment
spec:
containers:
- name: mysqldb
image: "dockerregistry:mysqldatabase"
imagePullPolicy: Always
ports:
- containerPort: 3306 …
Run Code Online (Sandbox Code Playgroud) Admins-MacBook-Pro:~Harshin $ kubectl cluster-info Kubernetes master运行在http:// localhost:8080
要进一步调试和诊断群集问题,请使用"kubectl cluster-info dump".错误:服务器没有资源类型"services"
我正在关注这份文件
https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html?refid=gs_card
我正在尝试在配置kubectl for amazon eks的第11步中测试我的配置
apiVersion: v1
clusters:
- cluster:
server: ...
certificate-authority-data: ....
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: heptio-authenticator-aws
args:
- "token"
- "-i"
- "kunjeti"
# - "-r"
# - "<role-arn>"
# env:
# - name: AWS_PROFILE
# value: "<aws-profile>"
Run Code Online (Sandbox Code Playgroud) 我正在使用 ACR 容器注册表创建一个普通的 AKS 集群并部署一个虚拟服务,我之前已经做过很多次了,应该可以工作,但事实并非如此 - 服务部署没有错误,我看到了 pod 和服务是活动的,端口似乎匹配 - 但我无法访问 Pod 中运行的应用程序。
这是我的 YAML 文件:
apiVersion: v1
kind: Service
metadata:
name: dummyapp-prep
spec:
selector:
app: dummyapp-prep
ports:
- protocol: TCP
port: 80
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dummyapp-prep
spec:
selector:
matchLabels:
run: dummyapp-prep
replicas: 1
template:
metadata:
labels:
run: dummyapp-prep
spec:
containers:
- name: dummyapp-prep
image: dummyappregistry.azurecr.io/dummyappregistry.azurecr.io/dummyapp-prep:dummyapp-prep-18
ports:
- containerPort: 80
imagePullSecrets:
- name: secret
Run Code Online (Sandbox Code Playgroud)
一切都部署得很好 - 我看到了该服务并且它获得了一个外部 IP:
kubectl get services
NAME TYPE CLUSTER-IP …
Run Code Online (Sandbox Code Playgroud) X_train, X_test, y_train, y_test = \
train_test_split(X, y, test_size=0.30, random_state=1)
Run Code Online (Sandbox Code Playgroud)
在此示例中(X_train, X_test)
X
,以大写形式提及,而
(y_train, y_test)
此处y
以小写形式提及。
是否有任何令人信服的理由来遵循该命名约定?
我有一个ingress-nginx控制器处理流量到我在KKE上托管的Kubernetes集群.我使用docs中的helm安装说明进行设置:
在大多数情况下,一切都正常,但如果我尝试通过server-snippet
注释设置缓存相关参数,那么应该获得缓存控制头的所有服务内容都会返回404
.
这是我的ingress-service.yaml
档案:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-read-timeout: "4000"
nginx.ingress.kubernetes.io/proxy-send-timeout: "4000"
nginx.ingress.kubernetes.io/server-snippet: |
location ~* \.(js|css|gif|jpe?g|png)$ {
expires 1M;
add_header Cache-Control "public";
}
spec:
tls:
- hosts:
- example.com
secretName: example-com
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: client-cluster-ip-service
servicePort: 5000
- path: /api/
backend:
serviceName: server-cluster-ip-service
servicePort: 4000
Run Code Online (Sandbox Code Playgroud)
同样,它只是与正则表达式匹配的资源404
(所有.js
文件,.css
文件等).
有关为什么会发生这种情况的任何想法?
任何帮助表示赞赏!
nginx kubernetes google-kubernetes-engine kubernetes-ingress nginx-ingress