Kubernetes Dashboard 仪表盘是一个志在通用的基于web的监控和操作界面加入 kubernetes 的项目
13.1.1 创建dashboard 。ymal 配置文件
启动master
systemctl restart kube-apiserver.service kube-controller-manager.service kube-proxy.service kube-scheduler.service
开机自启动
[root@master ~]# systemctl enable kube-apiserver.service kube-controller-manager.service kube-proxy.service kube-scheduler.service
查看环境
[root@master ~]# kubectl get node
NAME STATUS AGE
node1 Ready 1d
node2 Ready 1d
接下来就可以做试验了
13.1.1
dashboard-deployment.yaml dashboard-service.yaml 两个包上传到linux 服务器上
13 vim dashboard-deployment.yaml
写入以下内容
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# Keep the name in sync with image version and
# gce/coreos/kube-manifests/addons/dashboard counterparts
name: kubernetes-dashboard-latest
namespace: kube-system
spec:
replicas: 1
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
version: latest
kubernetes.io/cluster-service: "true"
spec:
containers:
- name: kubernetes-dashboard
image: docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3
imagePullPolicy: IfNotPresent
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
ports:
- containerPort: 9090
args:
- --apiserver-host=http://192.168.24.68:8080
# - --apiserver-host=http://192.168.1.63:8080
livenessProbe:
httpGet:
path: /
port: 9090
initialDelaySeconds: 30
[root@master ~]# vim dashboard-service.yaml 配置文件
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
labels:
k8s-app: kubernetes-dashboard
kubernetes.io/cluster-service: "true"
spec:
selector:
k8s-app: kubernetes-dashboard
ports:
- port: 80
targetPort: 9090
扩展:service 的三种端口
port : service 暴露在cluster ip上的端口,port 是提供给集群内部客户防卫service 的入口
nodePort : nodePort 是k8s 提供给集群外部客户访问service 入口的一种方式
targetPort : 是pod 中容器实例上的端口,从port 和nodePort 上到来的数据最终经过kube-proxy 流入到后端pod的targetPort 进入容器
方法1 上传镜像
开始导入镜像
[root@node1 ~]# cat pod-infrastructure.tar | docker import - pod-infrastructure.tar
[root@node1 ~]# docker load -i kubernetes-dashboard-amd64.tar
[root@node2 ~]# cat pod-infrastructure.tar | docker import - pod-infrastructure.tar
[root@node2 ~]# docker load -i kubernetes-dashboard-amd64.tar
查看镜像
[root@node2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pod-infrastructure.tar latest 62b33f979ece 45 seconds ago 206 MB
docker.io/mritd/kubernetes-dashboard-amd64 latest 75f167b703e6 3 years ago 86.3 MB
13.1.4 启动dashboard 的deployment 和service
启动配置文件
root@master ~]# mv /root/dashboard-* /etc/kubernetes/
[root@master ~]#
创建pod
[root@master ~]# kubectl create -f /etc/kubernetes/dashboard-deployment.yaml
deployment "kubernetes-dashboard-latest" created
[root@master ~]# kubectl create -f /etc/kubernetes/dashboard-service.yaml
service "kubernetes-dashboard" created
[root@master ~]# kubectl get deployment --all-namespaces
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system kubernetes-dashboard-latest 1 1 1 0 2m
[root@master ~]# kubectl get svc --all-namespaces
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes 10.254.0.1 <none> 443/TCP 1d
kube-system kubernetes-dashboard 10.254.162.137 <none> 80/TCP 3m
没有创建成功
[root@master ~]# kubectl get pod -o wide --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
kube-system kubernetes-dashboard-latest-1114339607-nr9wb 0/1 ContainerCreating 0 10m <none> node2