标签: kops

Kubernetes/kops:将EBS卷附加到实例时出错.您无权执行此操作.错误403

我在kops配置的AWS集群上测试了kubernetes部署和EBS卷安装.这是部署yml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: helloworld-deployment-volume
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: helloworld
    spec:
      containers:
      - name: k8s-demo
        image: wardviaene/k8s-demo
        ports:
        - name: nodejs-port
          containerPort: 3000
        volumeMounts:
        - mountPath: /myvol
          name: myvolume
      volumes:
      - name: myvolume
        awsElasticBlockStore:
          volumeID: <volume_id>
Run Code Online (Sandbox Code Playgroud)

之后kubectl create -f <path_to_this_yml>,我在pod描述中收到以下消息:

Attach failed for volume "myvolume" : Error attaching EBS volume "XXX" to instance "YYY": "UnauthorizedOperation: You are not authorized to perform this operation. status code: 403
Run Code Online (Sandbox Code Playgroud)

看起来这只是一个权限问题.好的,我检查了节点角色的策略IAM- > Roles- …

amazon-ec2 amazon-web-services kubernetes kubectl kops

7
推荐指数
1
解决办法
3858
查看次数

卷已经专门附加到一个节点,不能附加到另一个节点

我有一个非常简单的 Kubernetes pod。我想要一个有状态的集合并想要以下过程:

  1. 我想要一个 initcontainer 下载并将 tarball 从 s3 解压缩到安装到 initcontainer 的卷中
  2. 我想将该卷安装到我要使用的主容器中

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: app
  namespace: test
  labels:
    name: app
spec:
  serviceName: app
  replicas: 1
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      initContainers:
      - name: preparing
        image: alpine:3.8
        imagePullPolicy: IfNotPresent
        command:
          - "sh"
          - "-c"
          - |
            echo "Downloading data"
            wget https://s3.amazonaws.com/.........
            tar -xvzf xxxx-........ -C /root/
        volumeMounts:
        - name: node-volume
          mountPath: /root/data/

      containers:
      - name: main-container
        image: ecr.us-west-2.amazonaws.com/image/:latest
        imagePullPolicy: Always

        volumeMounts: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kops statefulset

7
推荐指数
2
解决办法
1万
查看次数

SSH 到通过 KOPS 创建的 kubernetes 节点

我通过 Kops 创建了一个 Kubernetes 集群。配置和 ssh 密钥位于我无法再访问的机器中。即使我丢失了密钥,是否可以通过 kops ssh 到节点?我看到有一个命令 -

警察得到秘密

这给了我所有的秘密。我可以使用它来获得对节点的 ssh 访问权限以及如何操作吗?

我看到集群状态存储在 S3 中。它也存储密钥吗?

amazon-ec2 amazon-web-services kubernetes kops

7
推荐指数
2
解决办法
6214
查看次数

Kubernetes:拨打TCP 127.0.0.1:8080:连接:连接被拒绝

我已经使用kops启动了kubernetes集群。查找工作正常,我开始遇到以下问题:

kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Run Code Online (Sandbox Code Playgroud)

我该如何解决?看来kubernetes-apiserver没有运行,我该如何运行?

kubectl run nginx --image=nginx:1.10.0
error: failed to discover supported resources: Get http://localhost:8080/apis/apps/v1beta1?timeout=32s: dial tcp 127.0.0.1:8080: connect: connection refused
Run Code Online (Sandbox Code Playgroud)

请建议

kubernetes devops kubectl kops

6
推荐指数
1
解决办法
1万
查看次数

没有 dns 的 Kubernetes Kops

我是 kubernetes 的新手,我正在尝试使用 Kops 在 aws 中创建一个新集群。不幸的是,如果不指定 dns-zone,我似乎无法继续,当我出于相同目的使用 docker-machine 和 docker swarm 等工具时,我从未需要这样做。此外,我不需要也不想要 Route53 之类的服务。

因此,我的问题是如何在 aws 中创建 kubernetes 集群而不必担心 dns 区域和路由 53?

谢谢

amazon-web-services amazon-route53 docker kubernetes kops

6
推荐指数
1
解决办法
2322
查看次数

Master无法连接集群

集群升级后,三个主节点之一无法连接回集群。我有一个 HA 集群在 us-east-1a、us-east-1b 和 us-east-1c 中运行,在 us-east-1a 中运行的 master 无法重新加入集群。

我尝试将 master-us-east-1a 实例组缩小到零个节点,然后将其恢复到一个节点,但 EC2 机器启动时出现同样的问题,无法再次加入到集群,似乎是从备份启动的或者其他的东西。

我尝试连接到master来重新启动服务,可能是protukube或docker,但我也无法解决问题。

通过主服务器中的 ssh 连接,我注意到 flannel 服务没有在这台机器上运行。我尝试通过 docker 手动运行但没有成功。看来 flannel 是应该运行的网络服务,但没有运行。

  • 我可以重置 us-east-1a 的 master 并从零开始创建它吗?
  • 关于让 flannel 服务在这个 master 中运行有什么想法吗?

提前致谢。

附件

> kubectl get nodes
NAME                             STATUS     ROLES    AGE   VERSION
ip-xxx-xxx-xxx-xxx.ec2.internal  Ready      node     33d   v1.11.9
ip-xxx-xxx-xxx-xxx.ec2.internal  Ready      master   33d   v1.11.9
ip-xxx-xxx-xxx-xxx.ec2.internal  Ready      node     33d   v1.11.9
ip-xxx-xxx-xxx-xxx.ec2.internal  Ready      master   33d   v1.11.9
ip-xxx-xxx-xxx-xxx.ec2.internal  Ready      node     33d   v1.11.9
Run Code Online (Sandbox Code Playgroud)

-

> sudo systemctl status kubelet

Jan 10 …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services etcd kubernetes flannel kops

6
推荐指数
1
解决办法
1176
查看次数

使用kops启用Kubernetes PodPresets

我有一个kubernetes集群,其中设置了kops 1.5,然后升级到1.6.2.我正在尝试使用PodPresets.文档声明了以下要求:

  1. 您已启用api类型settings.k8s.io/v1alpha1/podpreset
  2. 您已启用准入控制器PodPreset
  3. 您已定义了pod预设

我看到1.6.x,第一个是照顾(我怎么验证?).我怎么能申请第二个?我可以看到群集中有三个kube-apiserver-*pod(我想它是3个az).我想我可以从kubernetes仪表板编辑他们的yaml配置,并将PodPreset添加到permit-control字符串中.但有没有更好的方法来实现这一目标?

kubernetes kops

5
推荐指数
1
解决办法
1271
查看次数

kubernetes/kops:默认用户和权限

使用kubectlkops 1.8

aws使用创建kops的客户端证书(在client-certificate-data字段中 显示为字符串~/.kube/config)旋转集群时,具有以下值:

    Subject: O=system:masters, CN=kubecfg
Run Code Online (Sandbox Code Playgroud)

除非我错了,从 开始kubernetes 1.4Organitazion的值被解释为group信息(与CN值相关联的字符串就是所谓的用户,因为k8s本质上没有这样的概念)

1:如何查看与system:masters组和/或kubecfg用户相关联的权限?

  • (与上述有关):我现在使用的开箱即用授权方法是什么?RBAC? 我该如何检查?

2:为什么在我的项目~/.kube/config包含一个kubecfg用户?(而是一个带有我的集群名称的用户和另一个名为的用户admin?)

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: <server_url>
  name:  <my_cluster_name>
contexts:
- context:
    cluster:  <my_cluster_name>
    user:  <my_cluster_name>
  name:  <my_cluster_name>
current-context:  <my_cluster_name>
kind: Config
preferences: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kops kubernetes-security

5
推荐指数
1
解决办法
1756
查看次数

Gitlab 安装的 Helm:错误:超出上下文截止日期

我在 AWS 中安装了一个带有 Kops 的 Kubernetes 集群。我已经使用 Gitlab UI 安装了 Helm Tiller。Tiller 服务似乎通过 Gitlab 工作,例如我已经从 Gitlab UI 安装了 Ingress。

但是当我尝试从我的 CLI 中使用同一个 Tiller 时,我无法让它工作。当我helm init说它已经安装时(这是完全有道理的):

helm init --tiller-namespace gitlab-managed-apps --service-account tiller
$HELM_HOME has been configured at C:\Users\danie\.helm.
Warning: Tiller is already installed in the cluster.
(Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)
Happy Helming!
Run Code Online (Sandbox Code Playgroud)

但是,例如,当尝试列出图表时,它需要 5 分钟然后超时:

$ helm list --tiller-namespace gitlab-managed-apps --debug
[debug] Created tunnel using local port: '60471' …
Run Code Online (Sandbox Code Playgroud)

gitlab kubernetes kops kubernetes-helm

5
推荐指数
1
解决办法
3415
查看次数

Kubernetes Master不附加FlexVolume

我正在尝试为Kubernetes附加可虚拟连接的FlexVolume示例,该示例似乎根据我在节点和主节点上的日志正常初始化:

Loaded volume plugin "flexvolume-k8s/dummy-attachable
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将卷附加到Pod上时,主方法永远不会调用attach方法。来自节点的日志显示为:

flexVolume driver k8s/dummy-attachable: using default GetVolumeName for volume dummy-attachable
operationExecutor.VerifyControllerAttachedVolume started for volume "dummy-attachable"
Operation for "\"flexvolume-k8s/dummy-attachable/dummy-attachable\"" failed. No retries permitted until 2019-04-22 13:42:51.21390334 +0000 UTC m=+4814.674525788 (durationBeforeRetry 500ms). Error: "Volume has not been added to the list of VolumesInUse in the node's volume status for volume \"dummy-attachable\" (UniqueName: \"flexvolume-k8s/dummy-attachable/dummy-attachable\") pod \"nginx-dummy-attachable\"
Run Code Online (Sandbox Code Playgroud)

这是我尝试挂载卷的方式:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-dummy-attachable
  namespace: default
spec:
  containers:
    - name: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kops

5
推荐指数
1
解决办法
339
查看次数