首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重启kube-apiserver?

如何重启kube-apiserver?
EN

Stack Overflow用户
提问于 2018-08-03 14:28:03
回答 4查看 19.9K关注 0票数 7

我今天重新启动了系统。在此之后,我的主系统和web浏览器将无法连接以查找kubernetes GUI。

当我运行命令systemctl status kube-apiserver.service时,它给出的输出如下所示:

代码语言:javascript
复制
kube-apiserver.service
  Loaded: not-found (Reason: No such file or directory)
  Active: inactive (dead)

如何重启api-server

EN

回答 4

Stack Overflow用户

发布于 2020-10-14 06:26:27

您是否直接下载并安装了

1)如果是,检查kube-apiserver.service systemd unit文件是否存在:

代码语言:javascript
复制
cat /etc/systemd/system/kube-apiserver.service

2)如果不是,您可能安装了K8S和kubeadm

在此设置下, kubeapi-server 将作为主节点上的pod运行

代码语言:javascript
复制
kubectl get pods -n kube-system
NAME                                       READY   STATUS    
coredns-f9fd979d6-jsn6w                    1/1     Running  ..
coredns-f9fd979d6-tv5j6                    1/1     Running  ..
etcd-master-k8s                            1/1     Running  ..
kube-apiserver-master-k8s                  1/1     Running  .. #<--- Here
kube-controller-manager-master-k8s         1/1     Running  ..
kube-proxy-5kzbc                           1/1     Running  ..
kube-scheduler-master-k8s                  1/1     Running  ..

,而不是作为systemd服务。

因此,因为您不能在K8S中重新启动pods,所以您必须删除它:

代码语言:javascript
复制
kubectl delete pod/kube-apiserver-master-k8s -n kube-system

并且会立即创建一个新的pod。

(*)当您运行kubeadm init时,您应该会看到控制平面static Pods清单的创建

代码语言:javascript
复制
.
. 
[control-plane] Using manifest folder "/etc/kubernetes/manifests"
[control-plane] Creating static Pod manifest for "kube-apiserver"
[control-plane] Creating static Pod manifest for "kube-controller-manager"
[control-plane] Creating static Pod manifest for "kube-scheduler"
[etcd] Creating static Pod manifest for local etcd in "/etc/kubernetes/manifests"
.
.

对应的yamls:

代码语言:javascript
复制
ubuntu@master-k8s:/etc/kubernetes/manifests$ ls -la
total 24
drwxr-xr-x 2 root root 4096 Oct 14 00:13 .
drwxr-xr-x 4 root root 4096 Sep 29 02:30 ..
-rw------- 1 root root 2099 Sep 29 02:30 etcd.yaml
-rw------- 1 root root 3863 Oct 14 00:13 kube-apiserver.yaml <----- Here
-rw------- 1 root root 3496 Sep 29 02:30 kube-controller-manager.yaml
-rw------- 1 root root 1384 Sep 29 02:30 kube-scheduler.yaml

和kube-apiserver规范:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 10.100.102.5:6443
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: kube-apiserver
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    - --advertise-address=10.100.102.5
    - --allow-privileged=true
    - --authorization-mode=Node,RBAC
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    - --enable-admission-plugins=NodeRestriction
    - --enable-bootstrap-token-auth=true
    .
    .
    .
票数 5
EN

Stack Overflow用户

发布于 2018-08-09 17:15:11

我也有类似的问题,但我做了一些简单的事情来解决这个问题。我想就是systemctl status kube-apiserver吧。

如果上述方法有效,请尝试以下步骤

在Master上:

重新启动所有服务etcd kube-apiserver kube-controller-manager kube-scheduler flanneld

在工作进程/节点上:

重新启动所有服务kube-proxy kubelet flanneld docker

例如:

代码语言:javascript
复制
systemctl restart kube-controller-manager
systemctl enable kube-controller-manager
systemctl status kube-controller-manager

注意:如果它的节点既是master节点又是worker节点。在同一个节点上启动这两个命令。

上面的步骤对我来说是有效的(但我们在1.7上工作)。希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2021-05-21 08:05:33

将kube-apiserver清单文件从/etc/kubernetes/manifests文件夹移动到临时文件夹。这种方法的优点是-只要文件从清单文件夹中删除,您就可以停止kube-apiserver。

代码语言:javascript
复制
vagrant@master01:~$ ll /etc/kubernetes/manifests/
total 16
-rw------- 1 root root 3315 May 12 23:24 kube-controller-manager.yaml
-rw------- 1 root root 1384 May 12 23:24 kube-scheduler.yaml
-rw------- 1 root root 2157 May 12 23:24 etcd.yaml
-rw------- 1 root root 3792 May 20 00:08 kube-apiserver.yaml
vagrant@master01:~$ sudo mv /etc/kubernetes/manifests/kube-apiserver.yaml /tmp/
vagrant@master01:~$ 
vagrant@master01:~$ ll /etc/kubernetes/manifests/
total 12
-rw------- 1 root root 3315 May 12 23:24 kube-controller-manager.yaml
-rw------- 1 root root 1384 May 12 23:24 kube-scheduler.yaml
-rw------- 1 root root 2157 May 12 23:24 etcd.yaml

API服务器现在已关闭-

代码语言:javascript
复制
vagrant@master01:~$ k get pods -n kube-system
The connection to the server 10.0.0.2:6443 was refused - did you specify the right host or port?
vagrant@master01:~$ 

vagrant@master01:~$ sudo mv /tmp/kube-apiserver.yaml /etc/kubernetes/manifests/
vagrant@master01:~$ 
vagrant@master01:~$ ll /etc/kubernetes/manifests/
total 16
-rw------- 1 root root 3315 May 12 23:24 kube-controller-manager.yaml
-rw------- 1 root root 1384 May 12 23:24 kube-scheduler.yaml
-rw------- 1 root root 2157 May 12 23:24 etcd.yaml
-rw------- 1 root root 3792 May 20 00:08 kube-apiserver.yaml

API服务器现在已启动

代码语言:javascript
复制
vagrant@master01:~$ k get pods -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-558bd4d5db-269lt           1/1     Running   5          8d
coredns-558bd4d5db-967d8           1/1     Running   5          8d
etcd-master01                      1/1     Running   6          8d
kube-apiserver-master01            0/1     Running   2          24h
kube-controller-manager-master01   1/1     Running   8          8d
kube-proxy-q8mkb                   1/1     Running   5          8d
kube-proxy-x6trg                   1/1     Running   6          8d
kube-proxy-xxph9                   1/1     Running   8          8d
kube-scheduler-master01            1/1     Running   8          8d
weave-net-rh2gb                    2/2     Running   18         8d
weave-net-s2cg9                    2/2     Running   14         8d
weave-net-wksk2                    2/2     Running   11         8d
vagrant@master01:~$ 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51666507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档