Kubernetes1.8.1安装指南,离线安装,内网安装(2)

 

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 安装calico网络

 

kubectl apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml join node节点

同样到node节点安装kubelet和kubeadm,和master节点操作一样,不再赘述。
然后执行master节点init输出的那个命令:

 

kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>

执行完成后在master节点用kubectl验证节点是否健康

 

[root@dev-86-202 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION dev-86-202 NotReady master 17h v1.8.1

注意,master节点默认是不作为node的,也不推荐做node节点。 如果需要把master当node:

 

[root@dev-86-202 ~]# kubectl taint nodes --all node-role.kubernetes.io/master- 安装dashboard

安装dashboard不难,使用时还真有点绕,主要是RBAC, 先介绍个简单的

 

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml

安装完之后, 使用nodeport方式访问

 

kubectl -n kube-system edit service kubernetes-dashboard

把type: ClusterIP 改成 type: NodePort 然后保存

 

$ kubectl -n kube-system get service kubernetes-dashboard NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard 10.100.124.90 <nodes> 443:31707/TCP 21h

https://masterip:31707 就可以访问dashboard了, 然而 。。 还不能用。

创建一个 dashboard-admin.yaml

 

apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard labels: k8s-app: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system

kubectl create -f dashboard-admin.yaml

然后在界面上直接点skip就可以了,不过你懂的,这很不安全。 真正安全的做法 请关注我进一步讨论:https://github.com/fanux

常见问题

kubelet服务启动不了?

cgroup driver配置要相同

查看docker cgroup driver:

 

docker info|grep Cgroup

有systemd和cgroupfs两种,把kubelet service配置改成与docker一致

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs #这个配置与docker改成一致

节点not ready ?

建议安装calico网络,如果要把主节点当成node节点需要加个命令:

 

[root@dev-86-202 ~]# kubectl taint nodes --all node-role.kubernetes.io/master-

dashboard 访问不了?

如果是NodePort方式访问,那需要知道dashboard服务具体调度到哪个节点上去了。访问那个节点的ip而不是master的ip。
不行的话把https 改成http试试。

查看具体在哪个节点

 

kubectl get pod -n kube-system -o wide

拉取镜像失败?

可以把node节点与master节点的镜像都在每个节点load一下。

dashboard crash, dns起不来?

可以把node节点与master节点的镜像都在每个节点load一下。

192.168网段与calico网段冲突?

如果你恰好也是192.168网段,那么建议修改一下calico的网段

这样init

 

kubeadm init --pod-network-cidr=192.168.122.0/24 --kubernetes-version v1.8.1

修改calico.yaml

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/cb5de141e989c3220b16e3269a997b74.html