是否可以更改已创建的 EKS 集群的 VPC?或者我是否必须创建一个新的 VPC 并在那里选择新的 VPC?
为什么我得到:
kube-system 1m 1h 245 kube-dns-fcd468cb-8fhg2.156899dbda62d287 Pod Warning FailedScheduling default-scheduler no nodes available to schedule pods
更新 - 我现在已经将整个集群迁移到us-west-2而不是eu-west-1这样我可以开箱即用地运行代码以防止引入任何错误。该tfstate文件显示正在引用正确的 EKS AMI。
例如
720: "image_id": "ami-00c3b2d35bddd4f5c",
FWIW,我正在关注https://www.terraform.io/docs/providers/aws/guides/eks-getting-started.html 并使用它在 Github 中链接的代码 - 即https://github。 com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started
注意:查看 EC2 实例,我可以看到 2 个 EKS 节点使用正确的 AMI ID 运行。
==== 更新
检查节点:
kubectl get nodes
No resources found.
Run Code Online (Sandbox Code Playgroud)
ssh 进入其中一个节点并运行journalctl显示:
Nov 21 12:28:25 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: E1121 12:28:25.419465 4417 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: Failed to list *v1.Node: Unauthorized
Nov 21 …Run Code Online (Sandbox Code Playgroud) 在 EKS(Kubernetes 1.11.5)中创建了一个具有多个节点组的集群,但是我注意到在configmap 中缺少extension-apiserver-authentication该键。client-ca-file
我认为这是由于 Kubernetes API 服务的启动方式造成的。还有其他人遇到过这个问题吗?
我在部署证书管理器时遇到了这个问题,该管理器使用GET https://10.100.0.1:443/api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication.
在 GKE 中这不是问题,因为extension-apiserver-authenticationconfigmap 已经包含了client-ca-file.
extension-apiserver-authenticationAWS 中的配置映射,
apiVersion: v1
data:
requestheader-allowed-names: '["front-proxy-client"]'
requestheader-client-ca-file: |
<certificate file>
requestheader-extra-headers-prefix: '["X-Remote-Extra-"]'
requestheader-group-headers: '["X-Remote-Group"]'
requestheader-username-headers: '["X-Remote-User"]'
kind: ConfigMap
metadata:
creationTimestamp: 2019-01-14T04:56:51Z
name: extension-apiserver-authentication
namespace: kube-system
resourceVersion: "39"
selfLink: /api/v1/namespaces/kube-system/configmaps/extension-apiserver-authentication
uid: ce2b6f64-17b8-11e9-a6dd-021a269d3ce8
Run Code Online (Sandbox Code Playgroud)
然而在 GKE 中,
apiVersion: v1
data:
client-ca-file: |
<client certificate file>
requestheader-allowed-names: '["aggregator"]'
requestheader-client-ca-file: |
<certificate file>
requestheader-extra-headers-prefix: '["X-Remote-Extra-"]'
requestheader-group-headers: '["X-Remote-Group"]'
requestheader-username-headers: '["X-Remote-User"]'
kind: …Run Code Online (Sandbox Code Playgroud) 之前有关于位于此处的自管理 Kubernetes 集群的问题。但它们没有涵盖 Amazon Linux(AWS EKS 提供的 AMI)的用例, Kubernetes kubelet 日志位于何处?
EKS 节点的 kubelet 日志在哪里?
默认情况下,我们一直为每个应用程序(公共)使用单个入口,但根据最近的要求,我们还需要为某些应用程序公开(私有)端点。这意味着我们有一个看起来像这样的模板:
模板/ingress.yaml
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "app.fullname" . -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{ include "app.labels" . | indent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 EKS 设置 EFS,但是当我部署我的 Pod 时,我遇到了类似MountVolume.SetUp failed for volume "efs-pv3" : rpc error: code = DeadlineExceeded desc = context deadline exceeded
事件中的错误。
这是什么原因?
我现在正在学习 AWS EKS,我想知道如何访问 etcd、kube-apiserver 和其他控制平面组件?
例如,当我们在 minikube 中运行如下命令时,我们可以发现etcd-minikube,kube-apiserver-minikube
[vagrant@localhost ~]$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-lrt6z 1/1 Running 0 176d
kube-system coredns-6955765f44-xbtc2 1/1 Running 1 176d
kube-system etcd-minikube 1/1 Running 1 176d
kube-system kube-addon-manager-minikube 1/1 Running 1 176d
kube-system kube-apiserver-minikube 1/1 Running 1 176d
kube-system kube-controller-manager-minikube 1/1 Running 1 176d
kube-system kube-proxy-69mqp 1/1 Running 1 176d
kube-system kube-scheduler-minikube 1/1 Running 1 176d
kube-system storage-provisioner 1/1 Running 2 176d
Run Code Online (Sandbox Code Playgroud)
然后,我们可以通过以下命令访问它们:
[vagrant@localhost ~]$ …Run Code Online (Sandbox Code Playgroud) 我创建了一个新的 AWS SSO(使用内部 IDP 作为身份源,因此不使用 Active Directory)。
我能够登录 AWS CLI、AWS GUI,但无法执行任何 kubectl 操作。
error: You must be logged in to the server (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
我认为这与 RBAC 有关,因为我可以通过
aws eks get-token.
? cat ~/.aws/config
[profile team-sso-admin]
sso_start_url=https://team.awsapps.com/start
sso_region=us-west-2
sso_account_id=1111111111
sso_role_name=AdministratorAccess
region=us-west-2
credential_process = aws-vault exec team-sso-admin --json
? aws-vault exec team-sso-admin --debug -- zsh --login
? env | grep AWS
AWS_VAULT_PROMPT=pass
AWS_VAULT_BACKEND=pass
AWS_VAULT=team-sso-admin
AWS_DEFAULT_REGION=us-west-2
AWS_REGION=us-west-2
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=xxx
AWS_SESSION_TOKEN=xxx
AWS_SECURITY_TOKEN=yyy
AWS_SESSION_EXPIRATION=2021-01-11T05:55:51Z
AWS_SDK_LOAD_CONFIG=1
? aws sts get-caller-identity --output yaml
Account: '111111111111' …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 eksctl 创建一个集群,使用默认选项和具有“AdministratorAccess”的 AMI 用户,我陷入了“等待 CloudFormation 堆栈”
> eksctl create cluster --name dev
[?] eksctl version 0.36.0
[?] using region us-west-2
[?] setting availability zones to [us-west-2a us-west-2c us-west-2b]
[?] subnets for us-west-2a - public:192.168.0.0/19 private:192.168.96.0/19
[?] subnets for us-west-2c - public:192.168.32.0/19 private:192.168.128.0/19
[?] subnets for us-west-2b - public:192.168.64.0/19 private:192.168.160.0/19
[?] nodegroup "ng-fa4af514" will use "ami-0532808ed453f9ca3" [AmazonLinux2/1.18]
[?] using Kubernetes version 1.18
[?] creating EKS cluster "dev" in "us-west-2" region with un-managed nodes
[?] will create 2 separate CloudFormation stacks …Run Code Online (Sandbox Code Playgroud) 我有一个 ServiceAccount YAML 文件,我将它应用到一个新集群。
我的 YAML 如下所示:
apiVersion: v1
items:
- apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: 2019-03-20T23:17:42Z
name: default
namespace: dev4
resourceVersion: "80999"
selfLink: /api/v1/namespaces/dev4/serviceaccounts/default
uid: 5c6e0d09-4b66-11e9-b4e3-0a779a87bb40
secrets:
- name: default-token-tl4dd
- apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"pod-labeler","namespace":"dev4"}}
creationTimestamp: 2020-04-21T05:46:25Z
name: pod-labeler
namespace: dev4
resourceVersion: "113455688"
selfLink: /api/v1/namespaces/dev4/serviceaccounts/pod-labeler
uid: 702dadda-8393-11ea-abd9-0a768ca51346
secrets:
- name: pod-labeler-token-6vgp7
kind: List
metadata:
resourceVersion: ""
selfLink: ""
Run Code Online (Sandbox Code Playgroud)
当我申请 1.16 版的新 EKS 集群时,通过命令kubectl apply -f <yaml file>
我收到如下错误:
Warning: kubectl apply should …Run Code Online (Sandbox Code Playgroud)