强文本直到证书经理每个吊舱都工作良好,如 aerospike 文档所示。但在安装操作员时,操作员吊舱会发生崩溃循环退避。
安装操作员使用:
git clone https://github.com/aerospike/aerospike-kubernetes-operator.git
git checkout 2.5.0
cd aerospike-kubernetes-operator/helm-charts
helm install aerospike-kubernetes-operator ./aerospike-kubernetes-operator --set replicas=3
Run Code Online (Sandbox Code Playgroud)
Pod 运行:
PS C:\Users\B.Jimmy\aerospike-kubernetes-operator-1.0.0> kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
cert-manager cert-manager-576c79cb45-xkr88 1/1 Running 0 4h41m
cert-manager cert-manager-cainjector-664f76bc59-4b5kz 1/1 Running 0 4h41m
cert-manager cert-manager-webhook-5d4fd5cb7f-f96qx 1/1 Running 0 4h41m
default aerospike-kubernetes-operator-7bbb8745c8-86884 1/2 CrashLoopBackOff 36 (59s ago) 159m
default aerospike-kubernetes-operator-7bbb8745c8-jzkww 1/2 Error 36 (5m14s ago) 159m
kube-system aws-node-7b4nb 1/1 Running 0 21h
kube-system aws-node-llnzh 1/1 Running 0 21h
kube-system …Run Code Online (Sandbox Code Playgroud) aerospike kubernetes kubernetes-helm cert-manager amazon-eks
我正在尝试使用位于https://github.com/kubernetes/charts/tree/master/stable/prometheus的默认 prometheus helm chart 将 Prometheus 安装到我的 EKS 集群。它部署成功,但在 Kubernetes Dashboard 中,AlertManager 和 Server 部署显示:
pod 具有未绑定的 PersistentVolumeClaims(重复 3 次)
我试过修改values.yaml文件无济于事。
我知道这没什么可做的,但我不确定在日志记录方面我还能查到什么。
这是运行的输出 helm install stable/prometheus --name prometheus --namespace prometheus
root@fd9c3cc3f356:~/charts# helm install stable/prometheus --name prometheus --namespace prometheus
NAME: prometheus
LAST DEPLOYED: Wed Jun 20 14:55:41 2018
NAMESPACE: prometheus
STATUS: DEPLOYED
RESOURCES:
==> v1beta1/ClusterRole
NAME AGE
prometheus-kube-state-metrics 1s
prometheus-server 1s
==> v1/ServiceAccount
NAME SECRETS AGE
prometheus-alertmanager 1 1s
prometheus-kube-state-metrics 1 1s
prometheus-node-exporter 1 1s
prometheus-pushgateway 1 …Run Code Online (Sandbox Code Playgroud) 我正在EKS上运行作业。尝试使用无效的Yaml开始工作后,似乎并没有放弃不良的Yaml,即使在更正文件后也一直给我同样的错误消息。
env节中添加了一个带有布尔值的环境变量,这引发了该错误:
Error from server (BadRequest): error when creating "k8s/jobs/create_csv.yaml": Job in version "v1" cannot be handled as a Job: v1.Job: Spec: v1.JobSpec: Template: v1.PodTemplateSpec: Spec: v1.PodSpec: Containers: []v1.Container: v1.Container: Env: []v1.EnvVar: v1.EnvVar: Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|oduction"},{"name":"RAILS_LOG_TO_STDOUT","value":true},{"name":"AWS_REGION","value":"us-east-1"},{"n|...yes,但错误消息继续显示原始的,错误的Yaml。kubectl get jobs --all-namespaces
我以为这可能是因为我没有imagePullPolicy设置为Always,但是即使我在kubectl本地运行命令也会发生这种情况。
以下是我的工作定义文件:
apiVersion: batch/v1
kind: Job
metadata:
generateName: create-csv-
labels: …Run Code Online (Sandbox Code Playgroud) 我正在创建一个配置以在 AWS 上的 Kubernetes 集群中托管一些应用程序。我有两个不同的应用程序,具有单独的服务/pod/选择器,但我现在想用一个入口公开它们。
所以我创建了以下入口控制器
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /foo
backend:
serviceName: foo
servicePort: 8080
- path: /bar
backend:
serviceName: bar
servicePort: 8080
Run Code Online (Sandbox Code Playgroud)
并且入口从 AWS 获取 ELB 没有任何问题,但是当我尝试浏览应用程序(使用 Tomcat appserver 的 Java 应用程序)时,我总是收到以下页面
这是经典的旧 Tomcat 欢迎页面,但每个请求总是返回 index.html(未加载 css/img),而且如果我尝试为应用程序使用正确的上下文路径,我会收到此页面。
如果我使用服务 (LoadBalancer) 公开应用程序,我可以使用它而不会出现这些问题,所以我认为入口配置有问题。
有任何想法吗?
更新
如果我使用这样的单一路径的入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: foo
servicePort: …Run Code Online (Sandbox Code Playgroud) tomcat kubernetes kubernetes-ingress amazon-eks nginx-ingress
我们正在尝试评估扩展 J2EE Web 应用程序和使用 AWS 托管服务的最佳方法。我们是否有理由在 Kubernetes (EKS) 上使用 Lambda 服务?虽然 Lambda 似乎可以扩展功能单元,但我不清楚为什么有人会用它来代替 Kubernetes,因为 Kubernetes 可以根据性能指标复制容器。
amazon-web-services kubernetes aws-lambda amazon-eks jakarta-ee
我有一个使用 eksctl cli 工具创建的 EKS 集群。
现在,用于创建 EKS 集群的用户或角色已从 AWS IAM 中删除,并且我没有向任何其他用户添加访问集群内 Kubernetes 资源的权限。
我拥有我的 AWS 账户的管理员访问权限。有没有办法访问 EKS 内运行的 kubernetes 集群资源?
我尝试了下面文章中提供的解决方案,但它没有成功,因为 IAM 用户和角色已从 AWS 中删除:https: //aws.amazon.com/premiumsupport/knowledge-center/amazon-eks-cluster-access/
如有帮助,将不胜感激。谢谢
我有一个 eks 集群,我的部署、服务和 loadBalancer 一切正常。每个服务都创建了自己的 LoadBalancer,所有服务都已启动并正在运行。我有一个前端服务和 2 个后端服务,这里是我的部署和入口文件
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: apache-kubernetes
spec:
replicas: 2
selector:
matchLabels:
app: apache-kubernetes
template:
metadata:
labels:
app: apache-kubernetes
spec:
containers:
- name: apache-kubernetes
image: httpd
ports:
- containerPort: 80
env:
- name: MESSAGE
value: Hello Kubernetes!
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-apache-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: apache.example.com
- http:
paths:
- path: /
backend:
serviceName: apache-kubernetes
servicePort: 80
Run Code Online (Sandbox Code Playgroud)
我有一个类似的部署和服务 yaml 文件,用于部署和创建 nginx Web 服务器。我还运行了以下命令所有部署都需要以下强制命令。
kubectl …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Elasticsearch添加到EKS集群中。但是,每当我应用更改时,我的数据都会丢失。看来我已附加的卷已更改并回收。
metadata:
name: elasticsearch-uat
labels:
component: elasticsearch-uat
spec:
replicas: 1
serviceName: elasticsearch-uat
template:
metadata:
...
spec:
initContainers:
- name: init-sysctl
...
containers:
- name: es
securityContext:
capabilities:
add:
- IPC_LOCK
image: 559076975273.dkr.ecr.us-west-2.amazonaws.com/elasticsearch-s3:v2
env:
...
ports:
- containerPort: 9200
name: http
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
volumeMounts:
- mountPath: /data
name: es-storage-uat
updateStrategy:
type: RollingUpdate
volumeClaimTemplates:
- metadata:
namespace: k8
name: es-storage-uat
spec:
storageClassName: gp2
accessModes: [ ReadWriteOnce ]
resources:
requests:
storage: 2Gi
Run Code Online (Sandbox Code Playgroud)
这是一个有状态的集
请帮助我理解这个概念。我不希望我的数据在任何情况下都丢失。
提前致谢。
我们将 ms 作为 ALB 入口(ALB 负载均衡器)后面的 pod 运行。我的问题是所有 HTTP 请求日志都显示集群 IP 地址而不是 HTTP 客户端的 IP。有没有其他方法可以让 kubernetes 服务将此信息传递给我的应用服务器以显示客户端 IP 地址?即使尝试使用 java 代码 usig get.remote.address 函数,结果仍然相同。我知道有一种方法“service.spec.externalTrafficPolicy”,但这仅适用于 GCE 广告,不适用于 AWS。任何帮助!!!!!!
我正在尝试部署我的第一个 cron 作业。
\n从一个非常简单的开始,如 k8s教程中所述:
\napiVersion: batch/v1\nkind: CronJob\nmetadata:\n name: hello\nspec:\n schedule: "*/1 * * * *"\n jobTemplate:\n spec:\n template:\n spec:\n containers:\n - name: hello\n image: busybox\n imagePullPolicy: IfNotPresent\n command:\n - /bin/sh\n - -c\n - date; echo Hello from the Kubernetes cluster\n restartPolicy: OnFailure\nRun Code Online (Sandbox Code Playgroud)\n我已连接到我的 EKS 集群。这是命令和输出:
\n\xe2\x9e\x9c Dev kubectl apply -f cronjob.yaml \nerror: unable to recognize "cronjob.yaml": no matches for kind "CronJob" in version "batch/v1" \nRun Code Online (Sandbox Code Playgroud)\n并且 batch/v1 确实存在于我的 apiVersion 列表中。
\n无法理解出了什么问题.. …
如何从多个可用区访问 AWS EBS 卷?
我的案例详细:
我有一个跨多个可用区的 VPC:
data "aws_availability_zones" "available" {}
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "3.10.0"
name = "${local.project_slug}-main-vpc"
cidr = "10.0.0.0/16"
azs = data.aws_availability_zones.available.name
...
Run Code Online (Sandbox Code Playgroud)
在此集群中,我有一个 max_capacity 为 n 的托管节点组:
module "eks" {
source = "terraform-aws-modules/eks/aws"
version = "17.22.0"
cluster_name = "${local.project_slug}-main-eks"
cluster_version = "1.19" # K8s version
vpc_id = module.vpc.vpc_id
subnets = module.vpc.public_subnets
# managed nodes
node_groups = {
grey = {
desired_capacity = 1
min_capacity = 1
max_capacity = 10
instance_types = ["t3.medium"] …Run Code Online (Sandbox Code Playgroud) amazon-eks ×11
kubernetes ×9
aerospike ×1
amazon-iam ×1
aws-lambda ×1
cert-manager ×1
clientip ×1
jakarta-ee ×1
prometheus ×1
terraform ×1
tomcat ×1
yaml ×1