我有一个带有 3 个副本的 MySQL 数据库 Pod。
现在我正在一个 Pod 中进行一些更改(Pod 数据,而不是 Pod 配置),假设我要添加一张表。
该更改将如何影响 Pod 的其他副本?
我正在使用带有 3 个工作节点的 kubernetes v1.13。
有没有办法通过主机名访问 Pod?我有一个主机名为:的 pod my-pod-1
,需要连接到另一个主机名为:的 pod
my-pod-2
。
在没有服务的情况下实现这一目标的最佳方法是什么?
按照本指南,我尝试在 GKE 的 pod 内运行 gcsfuse。以下是我正在使用的部署清单:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: gcsfuse-test
spec:
replicas: 1
template:
metadata:
labels:
app: gcsfuse-test
spec:
containers:
- name: gcsfuse-test
image: gcr.io/project123/gcs-test-fuse:latest
securityContext:
privileged: true
capabilities:
add:
- SYS_ADMIN
lifecycle:
postStart:
exec:
command: ["mkdir", "/mnt"]
command: ["gcsfuse", "-o", "nonempty", "cloudsql-p8p", "/mnt"]
preStop:
exec:
command: ["fusermount", "-u", "/mnt"]
Run Code Online (Sandbox Code Playgroud)
但是,我想在 GKE 集群中不使用特权模式运行 gcsfuse。我认为(由于诸如此类的问题)可以使用某些标志运行 docker 映像,并且无需在特权模式下运行它。
GKE 有没有办法在不以特权模式运行容器的情况下运行 gcsfuse?
我想修剪docker 镜像,我使用编写了一个小型 Docker 镜像node-docker-api
,并且能够在本地成功测试它。
当我将其部署DaemonSet
到 Kubernetes 时,pod 无法访问 Docker 套接字:
Error: connect EACCES /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
外观deployment.yaml
如下:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
labels:
name: docker-image-cleanup
name: docker-image-cleanup
spec:
template:
metadata:
labels:
app: docker-image-cleanup
spec:
volumes:
- name: docker-sock
hostPath:
path: "/var/run/docker.sock"
type: File
- name: docker-directory
hostPath:
path: "/var/lib/docker"
containers:
- name: docker-image-cleanup
image: image:tag
securityContext:
privileged: true
env:
- name: PRUNE_INTERVAL_SECONDS
value: "30"
- name: PRUNE_DANGLING
value: "true"
volumeMounts:
- mountPath: /var/run/docker.sock
name: …
Run Code Online (Sandbox Code Playgroud) 我需要通过从主节点执行命令来获取在工作节点中运行的 pod 列表。如果我进入工作节点并执行,我就可以实现kubectl get pods -n ns
。但我需要从主节点执行此操作并在工作节点中获取 Pod。
我的 k8s 集群最初有 2node 和 1master,我使用 3pod 部署了 statefulset,因此带有 PVC 的 3pod 在 2 个节点上运行。现在我将节点从 2 个增加到 3 个。所以现在 k8s 是 3nodes 和 1master。我想将其中一个有状态 pod 移动到新添加的节点而不删除 PVC,以便 3 个 pod 将分布在每个 3 个节点上。我尝试删除 pod,但它在同一节点上创建,而不是在新节点上创建(这是预期的)。谁能告诉我是否可以将一个 Pod 移动到另一个节点而不删除 PVC?这是可以实现的吗?或任何替代解决方案,因为我不想删除 PVC。
kubernetes kubernetes-pvc kubernetes-statefulset kubernetes-pod
我正在尝试通过以下命令将本地文件夹移动到 kubernetes 卷中:
kubectl cp /* mynamespace/mypod-xxxx-xxxx:/var/www/my-content
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误消息:
错误:src 或 dest 之一必须是远程文件规范
即使我已经配置卷安装如下:
volumeMounts:
- mountPath: "/var/www/my-content"
name: mycontent
volumes:
- name: mycontent
persistentVolumeClaim:
claimName: mypvc
Run Code Online (Sandbox Code Playgroud)
请让我知道我错过了哪些配置。
我是 Kubernetes 新手,正在致力于在新的 Kubernetes 集群中部署应用程序。
目前,运行的服务有多个Pod需要相互通信。我正在寻找一种通用方法来调试问题,而不是进入服务的详细信息,因为问题会变得过于具体。
集群内的 Pod 抛出错误:
err="Get \"http://testpod.mynamespace.svc.cluster.local:8080/": dial tcp 10.10.80.100:8080: connect: connection refused"
两个 Pod 位于同一集群中。
调试此问题的最佳步骤是什么?
我尝试运行:
kubectl exec -it testpod --namespace mynamespace -- cat /etc/resolv.conf
这返回:
search mynamespace.svc.cluster.local svc.cluster.local cluster.local us-east-2.compute.internal
我在这里找到的: https: //kubernetes.io/docs/concepts/services-networking/dns-pod-service/
我有一个可以正常运行的本地图像:
docker run -p 8080:8080 -v C:\Users\moritz\Downloads\1\imageService\examples1:/images -v C:\Users\moritz\entwicklung\projekte\imageCluster\logs:/logs imageservice
现在我希望它作为 Kubernetes(使用 Docker-for-Windows v1.19.7 内置的)部署运行:
apiVersion: apps/v1
kind: Deployment
metadata:
name: image-service
spec:
selector:
matchLabels:
app: image-service
template:
metadata:
labels:
app: image-service
spec:
containers:
- name: image-service
image: "imageservice"
resources:
limits:
cpu: "0.9"
memory: "1Gi"
ports:
- name: http
containerPort: 8080
volumeMounts:
- mountPath: /images
name: image-volume
- mountPath: /logs
name: log-volume
volumes:
- name: image-volume
hostPath:
path: "c:\\Users\\moritz\\Downloads\\1\\imageService\\examples1"
type: Directory
- name: log-volume
hostPath:
path: /mnt/c/Users/moritz/entwicklung/projekte/imageCluster/logs
type: Directory
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我尝试了不同的方法在 …
我重新启动了 Prometheus pod,现在 Prometheus pod 正在崩溃。在日志中发现这个错误:
level=error ts=2021-06-09T09:27:29.066Z caller=main.go:758 err="opening storage failed: block dir: \"/prometheus/01F6J0P4KBBWVJD2M8B1PE7C5E\": open /prometheus/01F6J0P4KBBWVJD2M8B1PE7C5E/meta.json: no such file or directory"
Run Code Online (Sandbox Code Playgroud)
注意到该01F6J0P4KBBWVJD2M8B1PE7C5E
文件夹中只有 chunks 文件夹。
知道为什么会发生这种情况吗?有没有办法解决这个问题?
kubernetes prometheus kubernetes-helm prometheus-operator kubernetes-pod
kubernetes ×10
kubernetes-pod ×10
azure-aks ×1
docker ×1
fuse ×1
gcsfuse ×1
kubectl ×1
prometheus ×1
windows ×1