我对 Kubernetes 完全陌生。我试图在本地机器上使用 minikube。我已经在本地安装了 kubectl 和 minikube。当我跑步时
minikube start --vm-driver=virtualbox # and then
minikube status
Run Code Online (Sandbox Code Playgroud)
我的输出是
E0512 23:33:45.964815 23423 status.go:233] kubeconfig endpoint: extract IP: "minikube"
does not appear in /.kube/config
m01
host: Running
kubelet: Stopped
apiserver: Stopped
kubeconfig: Misconfigured
WARNING: Your kubectl is pointing to stale minikube-vm.
To fix the kubectl context, run `minikube update-context`
Run Code Online (Sandbox Code Playgroud)
当我运行时minikube update-context输出是
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x148ecb0]
..... and more
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?提前致谢
我了解 kubectl 按顺序获取 kubeconfig 文件
--kubeconfigKUBECONFIG=~/.kube/config但是有没有一种方法可以从当前正在使用的 kubectl 获取 kubeconfig 路径/文件详细信息?
就像是kubectl config path
我创建了一个自定义舵图作为elastic-stack具有以下配置的子图。
# requirements.yaml
dependencies:
- name: elastic-stack
version: 1.5.0
repository: '@stable'
Run Code Online (Sandbox Code Playgroud)
# values.yaml
elastic-stack:
kibana:
# at this level enabled is not recognized (does not work)
# enabled: true
# configs like env, only work at this level
env:
ELASTICSEARCH_URL: http://foo-elasticsearch-client.default.svc.cluster.local:9200
service:
externalPort: 80
# enabled only works at root level
elasticsearch:
enabled: true
kibana:
enabled: true
logstash:
enabled: false
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么我必须enabled在外部定义标签elasatic-stack:并在内部定义所有其他配置?
这是正常的舵行为还是弹性堆栈图表中的某些配置错误?
我希望 C# 代码连接到 K8s 集群,现在只需列出命名空间。我尝试的以下 C# 代码可以工作,并连接到 Kubernetes 集群,但仅在“SkipTlsVerify = true”时才有效。当我将 SkipTlsVerify 设置为 false 时,出现以下错误:
Unhandled exception: k8s.Exceptions.KubeConfigException: A CA must be set when SkipTlsVerify === false
我不想跳过 TLS 验证。如何向 C# Kubernetes 客户端提供必要的 CA 信息以启用 TLS 验证?
我不想使用 BuildConfigFromConfigFile()。这些都无法进入文件系统来读取或写入文件。现在我只能使用局部变量
我一开始尝试过,它有效,但它跳过了 TLS 验证:
var contextName = "mycontext, i copied this from my kubeconfig file"
var server = "https://...*** copied from 'server' in kubeconfig file *** "
var config = new KubernetesClientConfiguration()
{
Host = server,
AccessToken = accessToken,
SkipTlsVerify = true, …Run Code Online (Sandbox Code Playgroud) 我们的用户只能从管理站访问 Kubernetes 集群,不可能直接从笔记本电脑/工作站访问 API。
每个用户都拥有 kubeconfig 以及属于该特定用户的相关秘密。由于 kubeconfig 还包含用于针对 Kubernetes API 进行身份验证的令牌,因此不可能将 kubeconfig “按原样”存储在管理站文件系统上。
有什么方法可以通过 STDIN 向 kubectl 提供令牌/kubeconfig,而不将其暴露给文件系统上的其他用户(例如管理站的管理员)?
假设我有两个 Kubernetes 集群,一个托管在 AWS EKS 上,另一个托管在另一个云提供商上,我想从另一个云提供商管理 EKS 集群。进行身份验证以便我可以执行此操作的最简单方法是什么?
生成一个 kubeconfig 是否合理,我将结果aws get-token(或类似的东西)嵌入到其他云提供商的集群中?或者这些令牌不是持久的?
任何帮助或指导将不胜感激!
我有两个 kubeconfigs 文件,第一个文件用于与集群通信,第二个文件用于 Aquasec,采用 JSON 格式。我怎样才能合并这两个?
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://656835E69F31E2933asdAFAKE3F5904sadFDDC112dsasa7.yld432.eu-west-2.eks.amazonaws.com
name: arn:aws:eks:eu-west-2:test651666:cluster/Magento
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.142.242.111:6443
name: kubernetes
contexts:
- context:
cluster: arn:aws:eks:eu-west-2:test651666:cluster/testing
user: arn:aws:eks:eu-west-2:test651666:cluster/testing
name: arn:aws:eks:eu-west-2:test651666:cluster/testing
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-for-desktop
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: arn:aws:eks:eu-west-2:test651666:cluster/testing
kind: Config
preferences: {}
users:
- name: arn:aws:eks:eu-west-2:test651666:cluster/testing
Run Code Online (Sandbox Code Playgroud) 我有 aws-eks 集群,下面是我替换现有配置的命令。
kubectl create configmap flink-config --from-file=./config -o yaml --dry-run | kubectl replace -
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个命令时。它给出了一个错误,如
W1009 17:00:14.998329 323115 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.
Run Code Online (Sandbox Code Playgroud)
如果我将 -dry-run 替换为 -dry-run=client,它会做同样的事情吗?
我有两个集群,配置文件存储在.kube. 我出口KUBECONFIG如下
export KUBECONFIG=/home/vagrant/.kube/config-cluster1:/home/vagrant/.kube/config-cluster2
Run Code Online (Sandbox Code Playgroud)
检查上下文
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* cluster-1 cluster-1 kubernetes-admin
cluster-2 cluster-2 kubernetes-admin
Run Code Online (Sandbox Code Playgroud)
但是当我选择 cluster-2 作为我当前的上下文时,我收到一个错误
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* cluster-1 cluster-1 kubernetes-admin
cluster-2 cluster-2 kubernetes-admin
kubectl config use-context cluster-2
Switched to context "cluster-2".
kubectl get pods -A
error: You must be logged in to the server (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
如果我只导出 cluster-2 的配置并尝试运行kubectl它就可以了。
我的问题是我是正确导出配置文件还是应该做更多的事情。
默认情况下,kubectl配置位于~/.kube/config. 使用命令时是否可以显式指定 kubeconfig 文件kubectl?
我想在现有集群中为IPVS启用Kube-proxy模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS?
我已经安装了所有必需的模块来启用它。另外,我的集群是使用 kubeadm 安装的,但是在安装过程中我没有使用配置文件。在我的集群上启用 IPVS 的确切命令应该是什么。
有一个 k8s 单主节点,我需要备份并恢复它我用 google 搜索了这个主题并找到了解决方案 - https://elastisys.com/2018/12/10/backup-kubernetes-how-and-why/
一切看起来都很简单;因此,我按照说明操作并获得了证书的副本和 etcd 数据库的快照。
但最后,我无法在我的主服务器上找到 kubeadm-config.yaml。
哪里可以找到这个文件?
有没有办法从kubectx中删除 kubernetes 集群上下文?或者只能通过手动从 kubeconfig 中删除它们来完成?
kubeconfig ×13
kubernetes ×13
kubectl ×8
amazon-eks ×2
.net ×1
automation ×1
c# ×1
kube-proxy ×1
kubeadm ×1
minikube ×1