参考服务器安装模式安装部署K8S无法执行kubectl命令

  • Choerodon平台版本: 0.6.0

  • 遇到问题的执行步骤:
    1、参考服务器安装模式安装部署K8S无法执行kubectl命令
    步骤1 :部署前均参考文档完成执行正常
    步骤2:inventory/hosts 修改如下:
    [root@sonarqube kubeadm-ansible]# vi inventory/hosts
    [all]
    node1 ansible_host=192.168.11.166 ip=192.168.11.166 ansible_user=root ansible_ssh_pass=handdba ansible_become=true
    node2 ansible_host=192.168.11.168 ip=192.168.11.168 ansible_user=root ansible_ssh_pass=handdba ansible_become=true
    node3 ansible_host=192.168.11.169 ip=192.168.11.169 ansible_user=root ansible_ssh_pass=handdba ansible_become=true

[kube-master]
node1

[etcd]
node1

[kube-node]
node1
node2
node3

步骤3:执行ansible-playbook -i inventory/hosts -e @inventory/vars cluster.yml正常,无失败信息
步骤4:kubectl get po -n kube-system执行提示kubectl :command not found

  • 文档地址:
    http://choerodon.io/zh/docs/installation-configuration/steps/kubernetes/

  • 环境信息(如:节点信息):
    参考hosts修改,操作服务器为青浦机房服务器

  • 报错日志:
    暂无

  • 原因分析:

    配置错误?
    需要优先完成端口号开发吗?尚未完成http://choerodon.io/zh/docs/installation-configuration/pre-install/#%E9%9C%80%E5%BC%80%E6%94%BE%E7%9A%84%E7%AB%AF%E5%8F%A3%E5%8F%B7文档中的端口号处理

  • 疑问:

    暂无

请问你执行kubectl命令时是在master节点上面执行的吗?

您好,是的呢,我就是在192.168.11.166机器上执行的

我现在重新按reset失败部署,处理再执行了,现在报端口拒绝
[root@sonarqube kubeadm-ansible]# kubectl get po -n kube-system
The connection to the server localhost:8080 was refused - did you specify the right host or port?

请在master节点执行下面命令 查看是否有报错日志

journalctl -n 100 -f -u kubelet

Oct 12 08:55:40 node1 systemd[1]: kubelet.service holdoff time over, scheduling restart.
Oct 12 08:55:40 node1 systemd[1]: Started kubelet: The Kubernetes Node Agent.
Oct 12 08:55:40 node1 systemd[1]: Starting kubelet: The Kubernetes Node Agent…
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701807 21880 feature_gate.go:156] feature gates: map[]
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701923 21880 controller.go:114] kubelet config controller: starting controller
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701934 21880 controller.go:118] kubelet config controller: validating combination of defaults and flags
Oct 12 08:55:40 node1 kubelet[21880]: error: unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory
Oct 12 08:55:40 node1 systemd[1]: kubelet.service: main process exited, code=exited, status=1/FAILURE
Oct 12 08:55:40 node1 systemd[1]: Unit kubelet.service entered failed state.
Oct 12 08:55:40 node1 systemd[1]: kubelet.service failed.

报kublet主线程退出
Oct 12 08:55:40 node1 systemd[1]: kubelet.service holdoff time over, scheduling restart.
Oct 12 08:55:40 node1 systemd[1]: Started kubelet: The Kubernetes Node Agent.
Oct 12 08:55:40 node1 systemd[1]: Starting kubelet: The Kubernetes Node Agent…
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701807 21880 feature_gate.go:156] feature gates: map[]
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701923 21880 controller.go:114] kubelet config controller: starting controller
Oct 12 08:55:40 node1 kubelet[21880]: I1012 08:55:40.701934 21880 controller.go:118] kubelet config controller: validating combination of defaults and flags
Oct 12 08:55:40 node1 kubelet[21880]: error: unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory
Oct 12 08:55:40 node1 systemd[1]: kubelet.service: main process exited, code=exited, status=1/FAILURE
Oct 12 08:55:40 node1 systemd[1]: Unit kubelet.service entered failed state.
Oct 12 08:55:40 node1 systemd[1]: kubelet.service failed.

请问你主机配置是怎么样的呢? cpu、内存、硬盘大小等信息

[root@sonarqube kubeadm-ansible]# top
top - 09:16:10 up 16:22, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 99 total, 1 running, 93 sleeping, 5 stopped, 0 zombie
%Cpu(s): 2.0 us, 0.5 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8009704 total, 6664672 free, 247444 used, 1097588 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 7391708 avail Mem

方便的话您可以ssh登录下看看,青浦机房的服务器

嗯 稍等 我上去看看,由于涉及敏感信息,我先删除楼上。

好的,感谢感谢呢。

方便的话电话或微信联系,文建东,微信89699049

发现的问题:
1.在windows主机上克隆和编辑kubeadm-ansible项目代码,导致出现下面错误,现已重新克隆代码。

2.node1节点开启防火墙,但又没有允许需开放的端口暴露出来,导致安装时健康检查出错

,现已关闭防火墙

3.由于你所提供的三台服务器为openstack创建的虚拟机,在openstack中的floating-ip是不会在虚拟机上创建一个新网卡的,而是通过l3-agent的转发实现。故你不能使用192.168.11.166-168-169这三个ip进行集群部署。

应使用下面命令查看真实内网ip,选择eth0网卡的ip

ip addr

故正确的host文件应为

[all]
node1 ansible_host=172.29.1.42 ip=172.29.1.42 ansible_user=root ansible_ssh_pass=handdba ansible_become=true
node2 ansible_host=172.29.1.61 ip=172.29.1.61 ansible_user=root ansible_ssh_pass=handdba ansible_become=true
node3 ansible_host=172.29.1.52 ip=172.29.1.52 ansible_user=root ansible_ssh_pass=handdba ansible_become=true

[kube-master]
node1

[etcd]
node1

[kube-node]
node1
node2
node3

4.node3节点无法访问node1节点6443端口,请联系it人员进行解决

感谢感谢呢!node3我直接先去除了,暂不部署了,当前部署已完成。麻烦再问下,我要在master上加dashboard界面的话,需要再怎样操作呢?若知请指导,谢谢。

已为你设置通过node2进行访问dashboard界面

https://192.168.11.168/#!/login

token已私信于你

您好!感谢感谢,访问没有问题了,有劳您把设置方法发下我把,这边需要复盘部署文档编写说明:wink:非常感谢您的再次回复,谢谢

通过kubeadm-ansible项目脚本部署集群默认是安装了dashboard了的,这里只需要将dashboard的svc开放出来就好,比较简单粗暴的方式就是在dashboard的svc上直接添加external-ips属性。

执行编辑命令:

$ kubectl edit svc kubernetes-dashboard -n kube-system

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"}}}
  creationTimestamp: 2018-10-12T03:07:18Z
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
  resourceVersion: "17030"
  selfLink: /api/v1/namespaces/kube-system/services/kubernetes-dashboard
  uid: ed9eaa09-cdcb-11e8-bcf3-fa163e15492f
spec:
  clusterIP: 10.233.14.25
  externalIPs:        #默认是没有这个属性的
  - 172.29.1.61
  ports:
  - port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

详细介绍请查看这里:

https://kubernetes.io/docs/concepts/services-networking/service/#external-ips

好的,好的,非常感谢呢,谢谢!

您好,再麻烦问下,那对应的token从哪里获取呢?修改添加externalIPs属性后,是否需要重启或怎样操作处理呢?