本人首次学习关于Kubernetes的相关知识,根据Kubernetes的权威指南做了一个关于Kubernetes的一个小测试
相关环境是:
centos7 64位
Kubernetes 1.5.2
docker 1.13.1
etcd 3.2.22
etcd,Kubernetes,docker安装完毕,之后讲防火墙和selinux都关闭了。
防火墙的状态:
[root@localhost kubernetes]# systemctl status iptables.service
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead) since 五 2018-08-10 16:05:50 CST; 32min ago
Process: 13907 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
Process: 12874 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
Main PID: 12874 (code=exited, status=0/SUCCESS)8月 10 16:05:50 localhost.localdomain systemd[1]: Stopping IPv4 firewall with iptables...
8月 10 16:05:50 localhost.localdomain iptables.init[13907]: iptables: Setting chains to policy… ]
8月 10 16:05:50 localhost.localdomain iptables.init[13907]: iptables: Flushing firewall rules:… ]
8月 10 16:05:50 localhost.localdomain iptables.init[13907]: iptables: Unloading modules: [ 确定 ]
8月 10 16:05:50 localhost.localdomain systemd[1]: Stopped IPv4 firewall with iptables.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Hint: Some lines were ellipsized, use -l to show in full.selinux的状态:
[root@localhost kubernetes]# getenforce
Disabled
写了关于yaml文件(该文件是摘录书中的)
启动了如下服务:
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
查看服务:
[root@localhost kubernetes]# ps -ef | grep kube
kube 14403 1 0 16:29 ? 00:00:00 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://127.0.0.1:8080
kube 14416 1 1 16:29 ? 00:00:00 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://127.0.0.1:8080
root 14427 1 3 16:29 ? 00:00:00 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://127.0.0.1:8080 --address=127.0.0.1 --hostname-override=127.0.0.1 --allow-privileged=false --pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest
root 14477 1 3 16:29 ? 00:00:00 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://127.0.0.1:8080
然后创建pod:
kubectl create -f /root/yaml/mysql-rc.yaml
报错信心如下:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
查看端口8080:
netstat -an | grep 8080 没有任何信息
查看网上相关信息,修改如下两处:
1)说是修改监听的地址,所有修改如下文件:
./apiserver:#KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
./config:#KUBE_MASTER="--master=http://0.0.0.0:8080"
./kubelet:#KUBELET_ADDRESS="--address=0.0.0.0"
./kubelet:#KUBELET_API_SERVER="--api-servers=http://0.0.0.0:8080"
然后重新启动了:
systemctl restart kube-apiserver
systemctl restart kube-controller-manager
systemctl restart kube-scheduler
systemctl restart kubelet
systemctl restart kube-proxy查看服务:
[root@localhost kubernetes]# ps -ef | grep kube
kube 14403 1 0 16:29 ? 00:00:00 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://0.0.0.0:8080
kube 14416 1 1 16:29 ? 00:00:00 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://0.0.0.0:8080
root 14427 1 3 16:29 ? 00:00:00 /usr/bin/kubelet --logtostderr=true --v=0 --api-servers=http://0.0.0.0:8080 --address=0.0.0.0 --hostname-override=127.0.0.1 --allow-privileged=false --pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest
root 14477 1 3 16:29 ? 00:00:00 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://0.0.0.0:8080
查看端口8080:
[root@localhost kubernetes]# netstat -anltp | grep 8080
[root@localhost kubernetes]#
为什么服务起来了,端口为什么没有监听呀?
2)修改apiserver文件中的KUBE_ADMISSION_CONTROL将ServiceAccount去掉
# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
重新启动:
systemctl restart kube-apiserver
根据上述修改还是报错:
[root@localhost kubernetes]# kubectl create -f /root/yaml/mysql-rc.yaml
The connection to the server localhost:8080 was refused - did you specify the right host or port?
综上所有问题:
1.为什么没有办法创建pod,为什么说端口被拒绝?
2.服务都起来了为什么端口没有被监听?
求大神们帮帮小弟,看看这是哪里出现了问题?谢谢!
<p>ps -ef|grep kube的结果显示kube-apiserver没创建成功;</p>
所以你后续重新尝试创建rc时的报错(黑体部分)对排查kube-apiserver没创建成功没有任何价值。
既然kube-apiserver是用系统service部署,那么kube-apiserver的日志就在系统日志中:
1、可以查看系统日志:vi /var/log/messages[可能有日期后缀-yyyymmdd]
2、可以用journalctl筛选查看service日志,如journalctl -u kube-apiserver
所以说仅以以上信息无法确认kube-apiserver退出原因
谢谢,您的回复。我已经找到问题造成的原因了。client: etcd cluster is unavailable or misconfigured。关键是etcd没有启动,数据没有存放的位置。将etcd启动之后,kube-apiserver就可以启动了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。