Minikube应该让在本地运行Kubernetes变得简单,不仅是为了"入门",还为了"日常开发工作流程".
来源:https://github.com/kubernetes/minikube/blob/master/ROADMAP.md#goals
但我还可以读到:"PersistentVolumes映射到minikube VM内的目录.Minikube VM引导到tmpfs,因此大多数目录不会在重新启动后保留(minikube stop)"
来源:https://kubernetes.io/docs/getting-started-guides/minikube/#persistent-volumes
那么如果我的开发需要持久存储(MySQL数据库,mongodb数据库......)怎么办?我是否需要扔掉我的Minikube并直接安装完整的Kubernetes?
我正在尝试公开我的api所以我可以向它发送请求.但是,当我使用命令时,minikube service api --url我什么都没得到.我所有的豆荚都运行得很好,kubectl get pods所以我坚持认为这可能是什么.
api-1007925651-0rt1n 1/1 Running 0 26m
auth-1671920045-0f85w 1/1 Running 0 26m
blankit-app 1/1 Running 5 5d
logging-2525807854-2gfwz 1/1 Running 0 26m
mongo-1361605738-0fdq4 1/1 Running 0 26m
jwl:.build jakewlace$ kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
api 10.0.0.194 <none> 3001/TCP 23m
auth 10.0.0.36 <none> 3100/TCP 23m
kubernetes 10.0.0.1 <none> 443/TCP 5d
logging 10.0.0.118 <none> 3200/TCP 23m
mongo 10.0.0.132 <none> 27017/TCP 23m
jwl:.build jakewlace$
jwl:.build jakewlace$ minikube service api --url
jwl:.build jakewlace$ …Run Code Online (Sandbox Code Playgroud) 目前,我正在通过执行以下操作从文件config.json创建一个configmap:
kubectl create configmap jksconfig --from-file=config.json
Run Code Online (Sandbox Code Playgroud)
我希望将ConfigMap 创建为部署的一部分,并尝试执行以下操作:
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |-
{{ .Files.Get "config.json" | indent 4 }}
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用。应该怎么做才能进入configmap.yaml,以便创建相同的configmap?
-更新-
当我执行头盔安装空运行时:
# Source: mychartv2/templates/jks-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: jksconfig
data:
config.json: |
Run Code Online (Sandbox Code Playgroud)
注意:我正在使用minikube作为我的kubernetes集群
我正在关注这篇博客文章并按照此命令,
helm upgrade --install airflow airflow/ \
--namespace airflow \
--values values.yaml
我收到这个错误。
in airflow: chart metadata (Chart.yaml) missing但我实际上在 下有 Chart.yaml 文件airflow/。
$ ls
Chart.yaml charts requirements.yaml tiller.yaml
Icon? requirements.lock templates values.yaml
Run Code Online (Sandbox Code Playgroud)
下面是 helm 版本和 kubectl pod
$ helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Run Code Online (Sandbox Code Playgroud)
$ kubectl get pods --namespace kube-system
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-9z8v5 1/1 Running 3 6h
coredns-fb8b8dccf-wdtpl 1/1 Running 3 6h
etcd-minikube 1/1 Running 1 6h
kube-addon-manager-minikube …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 minikube,并且我正在尝试使用 来访问我的应用程序,minikube tunnel因为服务类型是LoadBalancer.
当我执行 时,我能够获取外部 IP minikube tunnel,但是,当我尝试在浏览器上检查它时,它不起作用。我也尝试过Postman和curl,它们都不起作用。
除此之外,如果我进入 pod,我可以使用curl,它确实可以工作。此外,我执行了kubectl port-forward并且能够通过localhost访问我的应用程序。
有谁知道为什么我无法访问我的应用程序,即使一切似乎都运行正常?
我在 Microsoft Windows 10 Pro 上使用 minikube v1.11.0 。我的 minikube 经常停止,查找 minikube 状态
Minikube 状态:
类型:控制平面
主机:正在运行
kubelet:正在运行
apiserver:已停止
kubeconfig:已配置
minikube 日志:
Failed to list *v1.Service: Get https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: connect: connection refused
Failed to list *v1.Namespace: Get https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: dial tcp 10.96.0.1:443: i/o timeout
Run Code Online (Sandbox Code Playgroud)
Minikube 详细信息:
Minikube 版本:1.11.0
分配内存:4096
处理器:4 个虚拟处理器
'minikube ssh dmesg' 命令结果:
D:\IMP\DevOps Implementation\Python>minikube ssh dmesg
[ 0.000000] Linux version 4.19.107 (jenkins@jenkins) (gcc version 7.4.0 (Buildroot 2019.02.10)) #1 SMP Thu May 28 15:07:17 PDT 2020
[ …Run Code Online (Sandbox Code Playgroud) 我已经阅读了所有文档和一些 SO 帖子,但找不到这个问题的答案:
minikube 将其持久卷保存在我的本地 Mac 文件系统中的什么位置?
谢谢
有人可以详细说明安装kube-dns插件所需的步骤吗?我已经在上一个链接中下载了近400MB的git repo并make按照指示运行但是得到了Nothing to be done for 'all'.
文档不清楚加载项的形式是什么,以及如何安装它们."管理员指南"链接带我到这个无益的页面.
我试过/sf/answers/2962055211/,但收到了一条error validating data消息.即使这有效,但它似乎是一个非官方和尴尬的解决方案.
像这样的答案也太模糊了:https: //stackoverflow.com/a/36105547/4978821.
一旦我有了解决方案,我很乐意创建一个拉取请求来改进文档.
更新以澄清我的问题:
正如Aaron所提到的,dns插件默认在minikube中启用.运行minikube addons list表明它已启用.但是,如果我进入运行pod的bash shell,例如kubectl exec -it node-controller-poqsl bash尝试使用ping来访问我的mongo服务,它会解析为公共URL,而不是kubernetes服务IP.
我有一个非常简单的 node.js 应用程序(HTTP 服务),它与 redis“对话”。我想创建一个部署并使用 minikube 运行它。
根据我的理解,我的应用程序需要一个基于 docker 镜像的 kubernetes Pod。这是我的 Dockerfile:
FROM node:8.9.1
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
我用 docker build -t my-app .
接下来,我为我的应用程序的 Pod 创建了一个 Pod 定义:
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: my-app
image: my-app:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。但是从现在开始,我不知道如何继续使用redis:
redis 应该是另一个 Pod 还是服务(就 Kubernetes 而言)?
如何从我的应用程序内部引用 redis?根据redis是否会被定义为Pod/Service,如何获取连接URL和端口?我了解了 Kubernetes 创建的环境变量,但我不确定它们是否适用于 Pod 或服务。
如何在单一配置下聚合两者(我的应用程序和 redis)?如何确保首先启动 redis,然后是我的应用程序(需要运行 redis 实例),以及如何将我的 …
我有两个 kubernetes 对象,
apiVersion: v1
kind: Pod
metadata:
name: client-pod
labels:
component: web
spec:
containers:
- name: client
image: stephengrider/multi-client
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 3000
apiVersion: v1
kind: Service
metadata:
name: client-node-port
spec:
type: NodePort
selector:
component: web
ports:
- port: 3050
targetPort: 3000
nodePort: 31515
Run Code Online (Sandbox Code Playgroud)
kubectl apply -f <file_name>之后我应用了两者,这是输出
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
client-node-port NodePort 10.100.230.224 <none> 3050:31515/TCP 30m
Run Code Online (Sandbox Code Playgroud)
豆荚输出
NAME READY STATUS RESTARTS AGE
client-pod 1/1 Running …Run Code Online (Sandbox Code Playgroud)