kubernetes1.5.1集群安装部署指南之集群配置篇
阅读本篇请首选阅读前面的kubernetes1.5.1集群安装部署指南之基础组件安装篇
kubernetes1.5.1集群安装部署指南之基础环境准备篇
三、集群配置篇
(一)master配置
1、集群初始化
rm -r -f /etc/kubernetes/* /var/lib/kubelet/* /var/lib/etcd/*
kubeadm init --api-advertise-addresses=192.168.128.115 --pod-network-cidr 10.245.0.0/16 --use-kubernetes-version v1.5.1
注意:上面的192.168.128.115是我的master的地址。这个命令不可以连续运行两次,如果再次运行,需要执行 kubeadm reset。
输出内容如下:
# kubeadm init --api-advertise-addresses=192.168.128.115--pod-network-cidr=10.245.0.0/16
WARNING: kubeadm is in alpha, please do not use it for production clusters.
Running pre-flight checks
Using Kubernetes version: v1.5.1
Generated token: "211c65.e7a44742440e1fad"
Generated Certificate Authority key and certificate.
Generated API Server key and certificate
Generated Service Account signing keys
Created keys and certificates in "/etc/kubernetes/pki"
Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
Created API client, waiting for the control plane to become ready
All control plane components are healthy after 23.373017 seconds
Waiting for at least one node to register and become ready
注意:如果这里一直停留很长时间,说明平台所需要的docker镜像未下载到位,请参见基础组件安装篇。
First node is ready after 6.017237 seconds
Creating a test deployment
Test deployment succeeded
Created the kube-discovery deployment, waiting for it to become ready
kube-discovery is ready after 3.504919 seconds
Created essential addon: kube-proxy
Created essential addon: kube-dns
Your Kubernetes master has initialized successfully! //表示集群初始化成功。
You should now deploy a pod network to the cluster.
Run "kubectl apply -f .yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node:
kubeadm join --token=211c65.e7a44742440e1fad 192.168.128.115 //千万注意:这条信息一定要拷贝记录下来,否则后面哭都来不及。
(二)每台node计算节点加入k8s集群
在所有的结点运行下面的命令:
kubeadm join --token=211c65.e7a44742440e1fad 192.168.128.115
运行完输出 信息如下:
# kubeadm join --token=211c65.e7a44742440e1fad 192.168.128.115
WARNING: kubeadm is in alpha, please do not use it for production clusters. Running pre-flight checks
Validating provided token
Created cluster info discovery client, requesting info from http://192.168.128.115:9898/cluster-info/v1/?token-id=60a95a
Cluster info object received, verifying signature using given token
Cluster info signature and contents are valid, will use API endpoints
Trying to connect to endpoint https://192.168.128.115:6443
Detected server version: v1.5.1
Successfully established connection with endpoint https://192.168.128.115:6443
Created API client to obtain unique certificate for this node, generating keys and certificate signing request
Received signed certificate from the API server:Issuer: CN=kubernetes | Subject: CN=system:node:k8s-node1 | CA: falseNot before: 2016-12-23 07:06:00 +0000 UTC Not After: 2017-12-23 07:06:00 +0000 UTC Generating kubelet configuration Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"Node join complete:*
Certificate signing request sent to master and responsereceived.* Kubelet informed of new secure connection details.
Run 'kubectl get nodes' on the master to see this machine join.
检测结果
# kubectl get node
NAME STATUS AGE
kube.master Ready,master 12d
kube.node1 Ready 12d
kube.node2 Ready 12d
(三)在master上清理测试数据
#kubectl taint nodes --all dedicated-
taint key="dedicated" and effect="" not found.
taint key="dedicated" and effect="" not found.
taint key="dedicated" and effect="" not found.
(四)在master上配置部署 weave 网络,打通跨主机容器通讯
官方给出的命令:kubectl create -f https://git.io/weave-kube
网络问题我们一般用不了,我们用这样:
#wget https://git.io/weave-kube -O weave-kube.yaml//下载配置文件
#kubectl create -f weave-kube.yaml //创建weave网络
# kubectl get pods -o wide -n kube-system//查看网络pods启动情况
(六)在master上配置dashboard
1、下载yaml文件
#wget https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml -O kubernetes-dashboard.yaml
2、修改yaml文件
#vi kubernetes-dashboard.yaml
imagePullPolicy: Always 修改为 imagePullPolicy: IfNotPresent
3、配置dashboard
#kubectl create -f kubernetes-dashboard.yaml
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created
4、查看仪表服务启动状态
# kubectl get pod --namespace=kube-system
NAME READY STATUS RESTARTS AGE
dummy-2088944543-pwdw2 1/1 Running 0 3h
etcd-kube.master 1/1 Running 0 3h
kube-apiserver-kube.master 1/1 Running 0 3h
kube-controller-manager-kube.master1/1 Running 0 3h
kube-discovery-982812725-rj6te 1/1 Running 0 3h
kube-dns-2247936740-9g51a 3/3 Running 1 3h
kube-proxy-amd64-i1shn 1/1 Running 0 3h
kube-proxy-amd64-l3qrg 1/1 Running 0 2h
kube-proxy-amd64-yi1it 1/1 Running 0 3h
kube-scheduler-kube.master 1/1 Running 0 3h
kubernetes-dashboard-3000474083-6kwqs 1/1 Running 0 15s
注意:如果该pod不停重启,我是将整个k8s集群重启就OK,启动顺序为node、最后master。不知道为啥?希望大神解答。
weave-net-f89j7 2/2 Running 0 32m
weave-net-q0h18 2/2 Running 0 32m
weave-net-xrfry 2/2 Running 0 32m
5、查看kubernetes-dashboard服务的外网访问端口
# kubectl describe svc kubernetes-dashboard --namespace=kube-system
Name:kubernetes-dashboard
Namespace:kube-system
Labels:app=kubernetes-dashboard
Selector:app=kubernetes-dashboard
Type:NodePort
IP:10.13.114.76
Port:80/TCP
NodePort:30435/TCP //外网访问端口
Endpoints:10.38.0.2:9090
Session Affinity:None
No events.[rootkubectl get pod --namespace=kube-system
至此可以用NodeIP:NodePort访问kubernetes-dashboard
(七)在master上配置第三方开源监控heapster
1、下载配置文件并上传master
请在github上下载heapster-master文件包或者到附件influxdb.rar
在heapster-master\deploy\kube-config\influxdb目录下找到这6个文件:
grafana-deployment.yaml
grafana-service.yaml
influxdb-deployment.yaml
influxdb-service.yaml
heapster-deployment.yaml
heapster-service.yaml
2、创建deployment、service
kubectl create -f grafana-deployment.yaml -f grafana-service.yaml -f influxdb-deployment.yaml -finfluxdb-service.yaml -f heapster-deployment.yaml -fheapster-service.yaml
3、查看pod启动状态
# kubectl get pods -o wide -n kube-system
NAME READY STATUS RESTARTS AGE IP NODE
dummy-2088944543-8dql8 1/1 Running 1 12d 192.168.128.115 kube.master
etcd-kube.master 1/1 Running 1 12d 192.168.128.115 kube.master
heapster-3901806196-hsv2s 1/1 Running 1 12d 10.46.0.4 kube.node2
kube-apiserver-kube.master 1/1 Running 1 12d 192.168.128.115 kube.master
kube-controller-manager-kube.master 1/1 Running 1 12d 192.168.128.115 kube.master
kube-discovery-1769846148-j8nwk 1/1 Running 1 12d 192.168.128.115 kube.master
kube-dns-2924299975-vdp8s 4/4 Running 4 12d 10.40.0.2 kube.master
kube-proxy-5mkkz 1/1 Running 1 12d 192.168.128.115 kube.master
kube-proxy-8ggq0 1/1 Running 1 12d 192.168.128.117 kube.node2
kube-proxy-tdd7m 1/1 Running 2 12d 192.168.128.116 kube.node1
kube-scheduler-kube.master 1/1 Running 1 12d 192.168.128.115 kube.master
kubernetes-dashboard-3000605155-gr6ll 1/1 Running 0 4d 10.46.0.12 kube.node2
monitoring-grafana-810108360-2nfb7 1/1 Running 1 12d 10.46.0.3 kube.node2
monitoring-influxdb-3065341217-tzhfj 1/1 Running 0 4d 10.46.0.13 kube.node2
weave-net-98jjb 2/2 Running 5 12d 192.168.128.116 kube.node1
weave-net-h15r5 2/2 Running 2 12d 192.168.128.115 kube.master
weave-net-rcr6x 2/2 Running 2 12d 192.168.128.117 kube.node2
4、查看外网服务端口
查看monitoring-grafana服务端口
# kubectl get svc --namespace=kube-system
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
heapster 10.98.45.1 80/TCP 1h
kube-dns 10.96.0.10 53/UDP,53/TCP 2h
kubernetes-dashboard 10.108.45.66 80:32155/TCP 1h
monitoring-grafana 10.97.110.225 80:30687/TCP 1h
monitoring-influxdb 10.96.175.67 8086/TCP 1h
看到开放端口为30687
通过节点IP加端口号30687访问第三方监控画面
页:
[1]