kubernetes dashboard 安装

环境:
CentOS Linux release 7.3.1611 (Core)
IP:192.168.0.103

【1】组件安装
yum install device-mapper
yum install docker -y
yum install kubernetes-master etcd flannel kubernetes-node -y

【2】文件配置
1,docker配置文件/etc/sysconfig/docker
======================================
# cat /etc/sysconfig/docker|egrep -v "^#|^$"
OPTIONS=''
DOCKER_CERT_PATH=/etc/docker
======================================

2,etcd配置文件/etc/etcd/etcd.conf
======================================
# cat /etc/etcd/etcd.conf |egrep -v "^#|^$"
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ## 监听地址端口
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.0.103:2379" ## etcd集群配置;多个etcd服务器,直接在后面加url
======================================

3,配置kubernetes-master
======================================
在/etc/kubernetes 目录中有以下几个文件:
apiserver: kubernetes api 配置文件
config: kubernetes 主配置文件
controller-manager: kubernetes 集群管理配置文件
scheduler: kubernetes scheduler配置文件

# cat /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" ## kube启动时绑定的地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.0.103:2379" ## kube调用etcd的url
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" ## 此地址是docker容器的地址段
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

注意KUBE_ADMISSION_CONTROL这一行的配置: 移除ServiceAccount 项目,否则在后期中会报出没有认证错误.

# cat config |egrep -v "^#|^$"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.0.103:8080" ## kube master api url
======================================

备注:controller-manager scheduler 两个文件采用默认配置即可

4,配置kubernetes node
======================================
在/etc/kubernetes目录下出现以下文件:
config: kubernetes 主配置文件
kubelet: kubelet node配置文件
proxy: kubernetes proxy 配置文件
# cd /etc/kubernetes
# cat config |egrep -v "^#|^$"
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://192.168.0.103:8080" ## kube master api url

# cat kubelet |egrep -v "^#|^$"
KUBELET_ADDRESS="--address=0.0.0.0" ## kubelet 启动后绑定的地址
KUBELET_PORT="--port=10250" ## kubelet 端口
KUBELET_HOSTNAME="--hostname-override=192.168.0.103" ##kubelet的hostname,在master执行kubectl get nodes显示的名字
KUBELET_API_SERVER="--api-servers=http://192.168.0.103:8080" ## kube master api url
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""
======================================

备注:kubernetes master与kubernetes node为同一节点。

5,flannel配置文件/etc/sysconfig/flanneld
======================================
# cat /etc/sysconfig/flanneld |egrep -v "^#|^$"
FLANNEL_ETCD="http://192.168.0.103:2379"
FLANNEL_ETCD_KEY="/kube/network"
======================================
【3】启动服务【按顺序】
a,启动etcd服务
# systemctl start etcd
# etcdctl mk /kube/network/config '{"Network":"10.254.0.0/16"}' ## 注意此处的ip和上文中出现的ip地址保持一致.

b,启动docker服务
# systemctl start docker

c,启动flanneld服务
systemctl start flanneld

查看ip,会出现flannel0的网络接口设备,该地址和docker0地址是一致的,如果不一致请确认以上服务是否正常启动
*********************************
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1472
inet 10.254.30.1 netmask 255.255.255.0 broadcast 0.0.0.0

flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1472
inet 10.254.30.0 netmask 255.255.0.0 destination 10.254.30.0
*********************************

d,启动运行在master服务
启动顺序:kube-apiserver居首.
# systemctl start kube-apiserver
# systemctl start kube-controller-manager
# systemctl start kube-scheduler
e,启动运行在node服务.
# systemctl start kube-proxy
# systemctl start kubelet

或者 for servername in kube-apiserver kube-controller-manager ...语句


【4】访问http://kube-apiserver:port
http://192.168.0.103:8080 查看所有请求url
http://192.168.0.103:8080/healthz/ping 查看健康状况

备注:/etc/hosts添加localhost 192.168.0.103

【5】安装kubernetes dashboard
# mkdir /usr/local/src/docker && cd /usr/local/src/docker
a,下载kubernetes-dashboard-no-rbac.yaml
# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard-no-rbac.yaml

b,下载docker pull siriuszg/kubernetes-dashboard-amd64
# docker pull siriuszg/kubernetes-dashboard-amd64
备注:下载kubernetes-dashboard-amd64镜像花了比较多时间,最终通过https://hub.docker.com,搜索kubernetes-dashboard-amd64,找到镜像
下载
=========
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/rhel7/pod-infrastructure latest 34d3450d733b 12 weeks ago 205 MB
docker.io/mritd/kubernetes-dashboard-amd64 latest 75f167b703e6 6 months ago 86.27 MB
=========
c,修改kubernetes-dashboard-no-rbac.yaml
-----------------------------------
- name: kubernetes-dashboard
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0
-----------------------------------
改为
-----------------------------------
- name: kubernetes-dashboard
image: docker.io/mritd/kubernetes-dashboard-amd64
-----------------------------------

"# - --apiserver-host=http://my-address:port" 改为 "- --apiserver-host=http://192.168.0.103:8080"

d, 查看namespace

# kubectl get pods --all-namespaces | grep dashboard
no resources

e, install dashboard
# kubectl create -f kubernetes-dashboard-no-rbac.yaml

f,The easiest way to access Dashboard is to use kubectl. Run the following command in your desktop environment:
# kubectl proxy
Starting to serve on 127.0.0.1:8001
g,验证
[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
538819330e57 docker.io/mritd/kubernetes-dashboard-amd64 "/dashboard --port=90" xxxx

6c271cd426825 registry.access.redhat.com/rhel7/pod-infrastructure:latest "/pod"  xxxx

h,access ui
kubectl will handle authentication with apiserver and make Dashboard available at http://localhost:8001/ui

The UI can only be accessed from the machine where the command is executed. See kubectl proxy --help for more options.

The end

Refer to:

http://www.aspku.com/fuwuqi/203663.html

https://github.com/kubernetes/dashboard

 

posted on 2017-04-22 17:02  kira+  阅读(622)  评论(0编辑  收藏  举报