标签: kubernetes-pod

代理背后的 Kubernetes Docker 容器

我们确实在代理后面部署了 Kubernetes 集群,并成功配置了 docker 守护程序以使用我们的代理来拉取图像,如下页所述:https : //docs.docker.com/config/daemon/systemd/#httphttps-proxy

我们确实配置了 Docker 客户端来设置环境参数“https_proxy”、“http_proxy”和“no_proxy”,如下页定义:https ://docs.docker.com/network/proxy/#configure-the-docker -客户

Kubernetes 集群设置如下:

aadigital1:~ # kubectl get node
NAME         STATUS    ROLES         AGE       VERSION
aadigital1   Ready     master,node   9d        v1.10.4
aadigital2   Ready     node          9d        v1.10.4
aadigital3   Ready     node          9d        v1.10.4
aadigital4   Ready     node          9d        v1.10.4
aadigital5   Ready     node          9d        v1.10.4
Run Code Online (Sandbox Code Playgroud)

Docker 容器手动运行 - ENV 参数设置正确

手动部署的 docker 容器的环境参数设置为:

aadigital1:~ # docker run -i -t odise/busybox-curl ash
/ # printenv
HTTPS_PROXY=http://ssnproxy.ssn.xxx.com:80/
no_proxy=localhost,127.0.0.0,127.0.1.1,127.0.1.1,local.home,80.250.142.64,80.250.142.65,80.250.142.66,80.250.142.69,80.250.142.70,80.250.142.71,aadigital1.aan.xxx.com,aadigita2.ssn.xxx.com,aadigital3.ssn.xxx.com,aadigital4.ssn.xxx.com,aadigita5.ssn.xxx.com,aadigital6.ssn.xxx.com
HOSTNAME=0360a9dcd20b
SHLVL=1
HOME=/root
NO_PROXY=localhost,127.0.0.0,127.0.1.1,127.0.1.1,local.home,80.250.142.64,80.250.142.65,80.250.142.66,80.250.142.69,80.250.142.70,80.250.142.71,aadigital1.aan.xxx.com,aadigita2.ssn.xxx.com,aadigital3.ssn.xxx.com,aadigital4.ssn.xxx.com,aadigita5.ssn.xxx.com,aadigital6.ssn.xxx.com
https_proxy=http://ssnproxy.ssn.xxx.com:80/
http_proxy=http://ssnproxy.ssn.xxx.com:80/
TERM=xterm
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin …
Run Code Online (Sandbox Code Playgroud)

proxy docker kubernetes kubernetes-pod

4
推荐指数
1
解决办法
4865
查看次数

如果 Kubernetes Pod 准备就绪失败,我们如何重新启动它

一个简短的问题。我知道如果 Kubernetes liveness 探测失败,kubernetes 会帮助重启 pod 并重试。但是就绪探测失败怎么办?我怎样才能让 kubernetes 重新启动 pod?

api-group-0 0/1 Running 0 6h35m

重启这个pod就可以正常工作了。谢谢大家!

kubernetes kubernetes-pod

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

Kubernetes Java 客户端 API 异常

我正在使用 Kubernetes Java 客户端 API https://github.com/kubernetes-client/java来获取所有存在的命名空间。我收到错误-

io.kubernetes.client.ApiException: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:443
    at io.kubernetes.client.ApiClient.execute(ApiClient.java:801)
    at io.kubernetes.client.apis.CoreV1Api.listNamespaceWithHttpInfo(CoreV1Api.java:15939)
    at io.kubernetes.client.apis.CoreV1Api.listNamespace(CoreV1Api.java:15917)
    at com.cloud.kubernetes.KubernetesNamespacesAPI.fetchAllNamespaces(KubernetesNamespacesAPI.java:25)
    at com.cloud.spark.sharedvariable.ClouzerConfigurations.setKubernetesEnvironment(ClouzerConfigurations.java:45)
Run Code Online (Sandbox Code Playgroud)

我尝试创建集群角色绑定并向用户授予权限。

这是我的代码片段:

public static List<String> fetchAllNamespaces(){
        try {
            return COREV1_API.listNamespace(null, "true", null, null, null, 0, null, Integer.MAX_VALUE, Boolean.FALSE)
                    .getItems().stream().map(v1Namespace -> v1Namespace.getMetadata().getName())
                    .collect(Collectors.toList());
        }catch(Exception e) {
            e.printStackTrace();
            return new ArrayList<>(); 
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我遗漏了什么,请告诉我。提前致谢。

java kubernetes kubernetes-pod kubernetes-cluster

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

Minikube 挂载的主机文件夹不起作用

我正在将 ubuntu 18 与 minikube 和虚拟框一起使用,并尝试挂载主机的目录以获取我的 pod 需要的输入数据。

我发现minikube挂载主机目录有问题,但默认情况下根据你的操作系统和vm驱动程序,有默认挂载的目录

我在我的豆荚上找不到那些。他们根本不在那里。

我尝试创建一个持久卷,它有效,我可以在仪表板上看到它,但是我无法将它挂载到 pod,我使用这个 yaml 创建了卷

{
  "kind": "PersistentVolume",
  "apiVersion": "v1",
  "metadata": {
    "name": "pv0003",
    "selfLink": "/api/v1/persistentvolumes/pv0001",
    "uid": "28038976-9ee4-414d-8478-b312a24a6b94",
    "resourceVersion": "2030",
    "creationTimestamp": "2019-08-08T10:48:23Z",
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"PersistentVolume\",\"metadata\":{\"annotations\":{},\"name\":\"pv0001\"},\"spec\":{\"accessModes\":[\"ReadWriteOnce\"],\"capacity\":{\"storage\":\"5Gi\"},\"hostPath\":{\"path\":\"/data/pv0001/\"}}}\n"
    },
    "finalizers": [
      "kubernetes.io/pv-protection"
    ]
  },
  "spec": {
    "capacity": {
      "storage": "6Gi"
    },
    "hostPath": {
      "path": "/user/data",
      "type": ""
    },
    "accessModes": [
      "ReadWriteOnce"
    ],
    "persistentVolumeReclaimPolicy": "Retain",
    "volumeMode": "Filesystem"
  },
  "status": {
    "phase": "Available"
  }
}
Run Code Online (Sandbox Code Playgroud)

这个 yaml 来创建工作。

apiVersion: batch/v1
kind: Job
metadata: …
Run Code Online (Sandbox Code Playgroud)

ubuntu docker kubernetes devops kubernetes-pod

4
推荐指数
1
解决办法
3299
查看次数

Kubernetes 活性探针:pod 可以监控自己的标准输出吗?

我的想法是实现一个活性探针作为命令,并使用类似的东西

$ grep something ERROR
Run Code Online (Sandbox Code Playgroud)

来自 Pod 内部,因此如果在 Pod 的输出中存在包含 ERROR 的行,则活性探测失败。

这可能吗?如果没有,是否可以在同一个容器中添加另一个容器来监视第一个容器?

kubernetes kubernetes-pod

4
推荐指数
1
解决办法
2092
查看次数

Kubernetes 负载均衡器 外部 IP 待定

我在 Kubernetes 中创建 RabbitMQ 集群。我正在尝试添加负载均衡器。但我无法获取负载均衡器外部 IP,它仍处于待处理状态。

apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  labels:
    run: rabbitmq
spec:
  type: NodePort
  ports:
  - port: 5672
    protocol: TCP
    name: mqtt
  - port: 15672
    protocol: TCP
    name: ui
  selector:
    run: rabbitmq
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbitmq
spec:
  replicas: 1
  selector:
    matchLabels:
      run: rabbitmq
  template:
    metadata:
      labels:
        run: rabbitmq
    spec:
      containers:
      - name: rabbitmq
        image: rabbitmq:latest
        imagePullPolicy: Always
Run Code Online (Sandbox Code Playgroud)

我的负载均衡器在下面。我给负载均衡器的nod​​ePort是随机的,端口号是来自kubernetes创建的RabbitMQ mqtt端口号,目标端口号是来自kubernetes创建的RabbitMQ UI端口号

apiVersion: v1
kind: Service
metadata:
  name: loadbalanceservice
  labels:
    app: rabbitmq
spec: …
Run Code Online (Sandbox Code Playgroud)

rabbitmq docker kubernetes docker-compose kubernetes-pod

4
推荐指数
1
解决办法
9699
查看次数

kubernetes pod 中的容器是否属于同一 cgroup?

在多容器 Kubernetes pod 中,容器是同一个 cgroup(连同 pod)的一部分还是为每个容器创建一个单独的 cgroup。

cgroups docker kubernetes docker-container kubernetes-pod

4
推荐指数
1
解决办法
376
查看次数

LoadBalancer external-ip 卡在待处理状态

我已经使用 kubeadm 创建了一个带有 AWS ec2 实例的 Kubernetes 集群,但是当我尝试创建一个类型为 LoadBalancer 的服务时,我得到了 EXTERNAL-IP 挂起状态

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP         123m
nginx        LoadBalancer   10.107.199.170  <pending>     8080:31579/TCP  45m52s
Run Code Online (Sandbox Code Playgroud)

我的创建命令是

kubectl expose deployment nginx --port 8080 --target-port 80 --type=LoadBalancer
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么。

我希望看到的是为负载平衡器提供的 EXTERNAL-IP 地址。

请问有人遇到过并成功解决了吗?

谢谢。

amazon-ec2 amazon-web-services kubernetes kubernetes-ingress kubernetes-pod

4
推荐指数
1
解决办法
2890
查看次数

如何使用 IAM 角色而不是访问密钥和密钥来访问 Kubernetes Pod 的 Amazon S3 存储桶?

我正在尝试使用 s3fs-fuse 将 S3 存储桶安装到 Kubernetes pod。我的 S3 存储桶受 IAM 角色保护,但我没有访问密钥和秘密密钥来访问 S3 存储桶。我知道如何使用访问和密钥从 Kubernetes pod 访问 S3bucket,但是我们如何使用 IAM 角色访问 S3 存储桶?

有人对此有建议吗?

amazon-s3 s3fs amazon-iam kubernetes kubernetes-pod

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

helm3 - 升级不会强制刷新 Pod

我们正在使用 helm3 和 Jenkins CI/CD 管道将 Java 微服务部署到 AWS“ECR > EKS”。然而我们看到的是,如果我们重新运行 Jenkins 作业来重新安装部署/pod,那么如果没有代码更改,pod 不会重新安装。它仍然保持旧的跑步舱原样。这里考虑的用例是, 部署期间拉取的数据库密钥的 AWS Secrets Manager 配置已更改,因此需要通过重新触发 Jenkins 作业来重新部署服务。

方法1https://helm.sh/docs/helm/helm_upgrade/

我尝试按照 helm3 升级文档中的建议使用“helm update --install --force ....”,但失败并在 Jenkins 日志中出现以下错误

“错误:升级失败:无法替换对象:服务“dbservice”无效:spec.clusterIP:无效值:“”:字段不可变”

方法 2:使用早期 helm 版本中的 --recreate-pods

使用“helm update --install --recreate-pods ....”,我在 Jenkins 日志中收到以下警告

“标志 --recreate-pods 已被弃用,功能将不再更新。有关重新创建 Pod 的其他方法,请查阅文档”

但是,pod 会被重新创建。但正如我们所知 --recreate-pods 不是软重启。因此我们会出现停机,这违反了微服务原则。

使用的头盔版本

version.BuildInfo{版本:“v3.4.0”,GitCommit:“7090a89efc8a18f3d8178bf47d2462450349a004”,GitTreeState:“干净”,GoVersion:“go1.14.10”}

问题

  • 如何将 --force 与 helm 3 一起使用并进行 helm Upgrade 来解决上述错误?
  • 如何使用已弃用的 --recreate-pods 实现软重启?

amazon-ec2 jenkins kubernetes kubernetes-helm kubernetes-pod

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