kubernetes单机版安装,以及bug调试

参考文章:

https://www.cnblogs.com/guyeshanrenshiwoshifu/p/9147238.html

https://blog.csdn.net/qq_34701586/article/details/78732470

http://ju.outofmemory.cn/entry/363031

 

首先需要有一台centos7的虚拟机(我是使用virtualbox5创建的)。

打开虚拟机命令行,执行以下命令。

 

1. 关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

2. 安装kubernetes(etcd也需要装,用来保存集群状态)

yum install -y etcd kubernetes

3. 修改docker配置文件:vi /etc/sysconfig/docker

原始形式:

OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'

修改后:

OPTIONS='--selinux-enabled=false --insecure-registry gcr.io --log-driver=journald --signature-verification=false'

4. 修改配置文件/etc/kubernetes/apiserver

修改KUBE_ADMISSION_CONTROL的内容为(删除ServiceAccount):

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

 

注:我不知道第3、4步有什么用。。。但网上都是这么写的。

5. 启动服务

start:

systemctl start etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy

restart:

systemctl restart etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy

 

6. 服务启动后

启动后,发现node已经ready了。

部署一个应用:

kubectl run my-nginx --image=nginx --replicas=2 --port=80

此时发现如下情况:应用根本没有启动。

查看其中一个pod的描述信息(根据自己的情况填相应的name)

kubectl describe pod my-nginx-379829228-6bkzb

在信息的最后面有如下描述:

Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request.  details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"

Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"registry.access.redhat.com/rhel7/pod-infrastructure:latest\""

主要两句就是:image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest

open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory

接下来解决该问题。

首先查看缺失的文件redhat-ca.crt:

发现它是一个链接文件,查看它所链接的文件,发现没有该文件。

该链接文件,需要安装python-rhsm-certificates。但是安装时会出现如下状况:

软件包 python-rhsm-certificates-1.19.10-1.el7_4.x86_64 被已安装的 subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64 取代
无须任何处理

没办法,需要先删除掉subscription-manager-rhsm-certificates

yum remove subscription-manager-rhsm-certificates

你会发现,顺便删除了一些依赖项,所以过会儿还要把他们补回来。

删除:
  subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos                                                                                                                       

作为依赖被删除:
  docker.x86_64 2:1.13.1-94.gitb2f74b2.el7.centos                kubernetes.x86_64 0:1.5.2-0.7.git269f928.el7                kubernetes-node.x86_64 0:1.5.2-0.7.git269f928.el7 

 

接下来安装python-rhsm-certificates,还是会出现问题(下面这条指令别执行!)。

yum install python-rhsm-certificates

你会发现安装的不是python-rhsm-certificates,而是subscription-manager-rhsm-certificates。

[root@master ~]# yum install python-rhsm-certificates
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.cuhk.edu.hk
 * extras: ftp.cuhk.edu.hk
 * updates: ftp.cuhk.edu.hk
软件包 python-rhsm-certificates 已经被 subscription-manager-rhsm-certificates 取代,改为尝试安装 subscription-manager-rhsm-certificates-1.21.10-3.el7.centos.x86_64
正在解决依赖关系
--> 正在检查事务
---> 软件包 subscription-manager-rhsm-certificates.x86_64.0.1.21.10-3.el7.centos 将被 安装
--> 解决依赖关系完成

xxx

已安装:
  subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos                                                                                                                       

完毕!

所以不能使用yum来安装python-rhsm-certificates,需要使用rpm来安装。

先查看版本号

yum list available |grep python-rhsm-certificates

然后在该网站(http://mirror.centos.org/centos/7/os/x86_64/Packages/)下载对应版本的文件到当前目录:

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

当文件下载到当前目录后,安装:

rpm -ivh python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

 

安装完成之后,查看之前的链接文件,发现现在存在了。

接下来需要备份该文件(因为你重新安装subscription-manager-rhsm-certificates后,该文件又会不见了)。

备份完成后,重新安装之间被remove掉的软件,为了方便,直接执行以下命令:

yum install kubernetes

执行时,你会发现subscription-manager-rhsm-certificates把你手动安装的python-rhsm-certificates给替换掉了。

安装完成后,会发现/etc/rhsm/ca目录下的文件不见了(这就是要备份的原因)。

注:说好的备份,我没备份。。。。又要删除,重新来一遍。

将备份redhat-uep.pem复制到/etc/rhsm/ca目录下:

cp redhat-uep.pem /etc/rhsm/ca/

此时问题基本已经解决了。重启所以服务:

systemctl restart etcd docker kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy

然后等一会儿,node才会ready:

也要等一会儿,pod才会running:

问题解决!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值