我在 Ubuntu 虚拟机上使用 kubeadm (v1.18) 设置了一个 k8s 集群。现在我需要添加一个入口控制器。我决定使用 nginx(但我对其他解决方案持开放态度)。我根据文档“裸机”部分安装了它:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.31.1/deploy/static/provider/baremetal/deploy.yaml
安装对我来说似乎很好:
kubectl get all -n ingress-nginx
NAME READY STATUS RESTARTS AGE
pod/ingress-nginx-admission-create-b8smg 0/1 Completed 0 8m21s
pod/ingress-nginx-admission-patch-6nbjb 0/1 Completed 1 8m21s
pod/ingress-nginx-controller-78f6c57f64-m89n8 1/1 Running 0 8m31s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ingress-nginx-controller NodePort 10.107.152.204 <none> 80:32367/TCP,443:31480/TCP 8m31s
service/ingress-nginx-controller-admission ClusterIP 10.110.191.169 <none> 443/TCP 8m31s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ingress-nginx-controller 1/1 1 1 8m31s
NAME DESIRED CURRENT READY AGE
replicaset.apps/ingress-nginx-controller-78f6c57f64 1 1 1 8m31s
NAME …
Run Code Online (Sandbox Code Playgroud) 我按照本指南使用kubeadm安装了kubernetes集群.经过一段时间后,我决定重新安装K8但遇到麻烦,删除所有相关文件,而不是在官方网站上找到任何文件如何删除通过kubeadm安装的集群.有人遇到了同样的问题并知道删除所有文件和依赖项的正确方法吗?先感谢您.
有关更多信息,我删除了kubeadm,kubectl和kubelet,apt-get purge/remove
但是当我再次开始安装集群时,我遇到了下一个错误:
[preflight] Some fatal errors occurred:
Port 6443 is in use
Port 10251 is in use
Port 10252 is in use
/etc/kubernetes/manifests is not empty
/var/lib/kubelet is not empty
Port 2379 is in use
/var/lib/etcd is not empty
Run Code Online (Sandbox Code Playgroud) 我正试着从我的工作站到达我的k8s主人.我可以从局域网中访问主服务器,但不能从我的工作站访问.错误消息是:
% kubectl --context=employee-context get pods
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.161.233.80, not 114.215.201.87
Run Code Online (Sandbox Code Playgroud)
如何在证书中添加114.215.201.87?我是否需要删除旧的群集ca.crt,重新创建它,重新启动整个群集然后重新签名客户端证书?我已经使用kubeadm部署了我的集群,我不确定如何手动执行这些步骤.
无法启动kubernetes API,因此无法启动kube服务,例如:kubectl版本kubect get节点
/home/ubuntu# kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port ?
Run Code Online (Sandbox Code Playgroud)
Docker 已安装。使用以下命令安装 kube 组件:
apt-get update && apt-get install -y kubeadm kubelet kubectl
Run Code Online (Sandbox Code Playgroud)
但是,执行时kubeadm init --apiserver-advertise-address=$myip --ignore-preflight-errors=all:
I0408 09:09:07.316109 1 client.go:352] scheme "" not registered, fallback to default scheme
I0408 09:09:07.319904 1 asm_amd64.s:1337] ccResolverWrapper: sending new addresses to cc: [{127.0.0.1:2379 0 <nil>}] …
Run Code Online (Sandbox Code Playgroud) 当我使用kubeadm配置Kubernetes集群时,我将我的节点标记为无.这是Kubernetes中的一个已知错误,目前公关正在进行中.但是,我想知道是否有为该节点手动添加角色名称的选项?
root@ip-172-31-14-133:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-31-14-133 Ready master 19m v1.9.3
ip-172-31-6-147 Ready <none> 16m v1.9.3
Run Code Online (Sandbox Code Playgroud) 我之前跑过的时候,我失去了原来的'kubeadm join'命令kubeadm init
.
如何再次检索此值?
我在执行 sudo kubeadm init 时遇到如下情况 Help me~~
$ sudo kubeadm init
[init] Using Kubernetes version: v1.24.1
[preflight] Running pre-flight checks
[WARNING SystemVerification]: missing optional cgroups: blkio
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: E0605 10:35:34.973561 12491 remote_runtime.go:925] "Status from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
time="2022-06-05T10:35:34+09:00" level=fatal msg="getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
, error: …
Run Code Online (Sandbox Code Playgroud) 在 k8s(v1.10) 集群上创建 Redis POD,并在“ContainerCreating”中创建 POD
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 30m default-scheduler Successfully assigned redis to k8snode02
Normal SuccessfulMountVolume 30m kubelet, k8snode02 MountVolume.SetUp succeeded for volume "default-token-f8tcg"
Warning FailedCreatePodSandBox 5m (x1202 over 30m) kubelet, k8snode02 Failed create pod sandbox: rpc error: code = Unknown desc = NetworkPlugin cni failed to set up pod "redis_default" network: failed to find plugin "loopback" in path [/opt/loopback/bin /opt/cni/bin]
Normal SandboxChanged 47s (x1459 over 30m) kubelet, k8snode02 …
Run Code Online (Sandbox Code Playgroud) 当我运行kubeadm init
它时会显示一个令牌,我应该使用其他主机连接到此主机.该令牌存储在哪里?我试图通过在Terraform中添加kubeadm来找出更多自动化方法.
谢谢你的帮助!