k8s 安装启动碰到的问题

安装过程:https://www.jianshu.com/p/65ecef9016ae

kube-apiserver启动失败

kube-apiserver.service - Kubernetes API Server
   Loaded: loaded (/usr/lib/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 一 2021-05-10 16:50:29 CST; 1s ago
     Docs: https://github.com/GoogleCloudPlatform/kubernetes
  Process: 10697 ExecStart=/usr/bin/kube-apiserver $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL $KUBE_ETCD_SERVERS $KUBE_API_ADDRESS $KUBE_API_PORT $KUBELET_PORT $KUBE_ALLOW_PRIV $KUBE_SERVICE_ADDRESSES $KUBE_ADMISSION_CONTROL $KUBE_API_ARGS (code=exited, status=255)
 Main PID: 10697 (code=exited, status=255)

5月 10 16:50:29 k8s-master systemd[1]: Unit kube-apiserver.service entered....
5月 10 16:50:29 k8s-master systemd[1]: kube-apiserver.service failed.
5月 10 16:50:29 k8s-master systemd[1]: kube-apiserver.service holdoff time....
5月 10 16:50:29 k8s-master systemd[1]: Stopped Kubernetes API Server.
5月 10 16:50:29 k8s-master systemd[1]: start request repeated too quickly ...e
5月 10 16:50:29 k8s-master systemd[1]: Failed to start Kubernetes API Server.
5月 10 16:50:29 k8s-master systemd[1]: Unit kube-apiserver.service entered....
5月 10 16:50:29 k8s-master systemd[1]: kube-apiserver.service failed.

在这里插入图片描述

可能是配置文件中KUBE_ADMISSION_CONTROL的错

  1. 查看apiserver的配置文件vi /etc/kubernetes/apiserver

其中KUBE_ADMISSION_CONTROL需要删除ServiceAccount

##
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
KUBE_API_PORT="--port=8080"

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
#KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""

但是改完后依旧报错,就需要看看etcd是否启动成功

etcd

etcd启动失败

在这里插入图片描述

修改两个配置文件:/etc/etcd/etcd.conf

#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.58.130:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="master"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://etcd:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://etcd:2379"
ETCD_INITIAL_CLUSTER="master=http://192.168.58.130:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

需要修改/usr/lib/systemd/system/etcd.service配置,关键就在ExecStart

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=/etc/etcd/etcd.conf
User=etcd
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd \
--name=\"${ETCD_NAME}\" \
--data-dir=\"${ETCD_DATA_DIR}\" \
--listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" \
--advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" \
--initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" \
--initial-cluster=\"${ETCD_INITIAL_CLUSTER}\"  \
--initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\" \
--listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\""
Restart=on-failure
LimitNOFILE=65536


[Install]
WantedBy=multi-user.target

然后etcd就启动成功了
在这里插入图片描述

再启动apiserver

在这里插入图片描述

最后

确定启动成功

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在启动 kube-apiserver.service 时遇到 "Unit kube-apiserver.service not found" 错误,可能是因为服务单元文件未正确安装或未正确配置。 您可以尝试以下步骤来解决该问题: 1. 确认 Kubernetes 的二进制文件已正确安装并可用。您可以通过运行 `which kube-apiserver` 命令来检查 kube-apiserver 的安装路径。如果命令返回路径,则说明二进制文件已正确安装。 2. 检查 Kubernetes 的服务单元文件是否存在。服务单元文件通常位于 `/etc/systemd/system/` 目录下,以 `.service` 结尾。确保存在名为 `kube-apiserver.service` 的服务单元文件。如果文件不存在,您可能需要重新安装 Kubernetes 或手动创建服务单元文件。 3. 如果服务单元文件存在,请确保文件的权限设置正确。运行以下命令来更正权限: ``` sudo chmod 644 /etc/systemd/system/kube-apiserver.service ``` 4. 如果服务单元文件存在但配置有误,您可以尝试重新配置该文件。打开 `/etc/systemd/system/kube-apiserver.service` 文件,并确保其中的配置正确无误。您可以参考 Kubernetes 官方文档或其他可靠来源获取正确的配置信息。 5. 在进行任何更改后,运行以下命令重新加载 systemd 配置并启动 kube-apiserver 服务: ``` sudo systemctl daemon-reload sudo systemctl start kube-apiserver.service ``` 如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值