参考:html
http://www.bubuko.com/infodetail-2242562.htmlnode
http://www.cnblogs.com/zhenyuyaodidiao/p/6500897.htmlgit
下面操做在k8s master 节点上安装 docker 容器github
1.下载kubernetes-dashboar.yaml文件docker
git clone https://github.com/jdedu/kubernetes.gitapi
先安装 git 浏览器
yum install git安全
2.修改内容网络
vi kubernetes/kubernetes-dashboard.yamlide
3.建立dashboard容器
kubectl create -f kubernetes-dashboard.yaml
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created
以上安装后 pods 是没有的,查了下尝试以下方法解决:
不过这样默认安装后,你可能还会遇到以下问题:
(1) Dashboard pod建立失败:这是因为kubernetes-dashboard-amd64:v1.1.1 image在墙外,pull image失败致使的。
能够经过使用加速器或使用替代image的方式来解决,好比:mritd/kubernetes-dashboard-amd64:v1.4.0。修改一下dashboard-controller.yaml中image那一行便可。
(2)Dashboard没法链接到master node上的api server
若是惟一的dashboard pod(因为replicas=1)被调度到minion node上,那么极可能没法链接上master node上api server(dashboard会在cluster中自动检测api server的存在,但有时候会失败),致使页面没法正常显示。所以,须要指定一下api server的url,好比:咱们在dashboard-controller.yaml中为container启动增长一个启动参数–apiserver-host:
// dashboard-controller.yaml ... ... spec: containers: - name: kubernetes-dashboard image: mritd/kubernetes-dashboard-amd64:v1.4.0 imagePullPolicy: Always ports: - containerPort: 9090 protocol: TCP args: - --apiserver-host=http://{api server host}:{api server insecure-port} ... ...
(3)增长nodeport,提供外部访问路径
dashboard以cluster service的角色运行在cluster中,咱们虽然能够在Node上访问该service或直接访问pod,但要想在外部网络访问到dashboard,还须要另外设置,好比:设置nodeport。
在dashboard-service.yaml中,修改配置以下:
spec: type: NodePort ports: - port: 80 targetPort: 9090 nodePort: 12345
这样你就能够经过node 的public ip+nodeport访问到dashboard了。
不过这时,你的dashboard算是在“裸奔”,没有任何安全可言:
- dashboard ui没有访问管理机制,任何access均可以全面接管dashboard;
- 同时在背后,dashboard经过insecure-port访问apiserver,没有使用加密机制。
4.查看状态
kubectl get pods --namespace=kube-system
或
kubectl get pod --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-1607234690-3bnk2 0/1 ContainerCreating 0 34s
查看构建详细信息
kubectl describe pods kubernetes-dashboard-1607234690-3bnk2 --namespace=kube-system
上面命令 没有数据,下面的有:
kubectl get deployment --all-namespaces
[root@k8s-master ~]# kubectl get deployment --all-namespaces
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system kubernetes-dashboard-latest 1 1 1 1 1h
[root@k8s-master ~]# kubectl get svc --all-namespaces
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes 10.254.0.1 <none> 443/TCP 9d
kube-system kubernetes-dashboard 10.254.44.119 <none> 80/TCP 1h
[root@k8s-master ~]# kubectl get pod -o wide --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
kube-system kubernetes-dashboard-latest-3866786896-vsf3h 1/1 Running 0 1h 10.0.82.2 k8s-node-1
5.测试
使用浏览器输入:http://k8s-master:8080/ui
在相应minion上访问这个地址 是能够的:
销毁应用
在master上执行:
kubectl delete deployment kubernetes-dashboard --namespace=kube-system
kubectl delete svc kubernetes-dashboard --namespace=kube-system
测试:
kubectl run sonarqube --image=192.168.179.133:80/sonarqube:5.6.5 --replicas=1 --port=9000
kubectl describe deployment/sonarqube
kubectl describe replicaset sonarqube-3005990520
kubectl describe pod sonarqube-3586311807-l234f
kubectl delete deployment sonarqube
kubectl delete svc sonarqube
此问题参考 个人博客:
http://www.cnblogs.com/hutuchong/p/7784061.html
大体缘由 : 这个镜像下不下来
单独
docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
会出现 提示
找了资料
安装后就能够了
把这镜像tag 后 ,上传到私服
注意:私服是在docker容器里的, master的docker要访问私服 也要添加 信任权限的。参考博文
而后在minion上 就能够执行命令 或k8s也能够获取到
最后这个测试成功1!