Kubernetes-dashboard搭建

k8s-dashboard搭建

基于CentOS7 k8s集群

Master

镜像下载

1
2
docker pull docker.io/siriuszg/kubernetes-dashboard-amd64:v1.5.1
docker pull registry.access.redhat.com/rhel7/pod-infrastructure

由于docker版本过低 need>1.12
所以运行docker pull registry.access会发生问题,所以需要在执行另外命令

1
2
3
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
#ps 这步也需要在node节点上运行

运行完毕后再pull,镜像即可正常下载

配置kubernetes的dashboard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
cat > kubernetes-dashboard.yaml <EOF
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
labels:
app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: kubernetes-dashboard
template:
metadata:
labels:
app: kubernetes-dashboard
# Comment the following annotation if Dashboard must not be deployed on master
annotations:
scheduler.alpha.kubernetes.io/tolerations: |
[
{
"key": "dedicated",
"operator": "Equal",
"value": "master",
"effect": "NoSchedule"
}
]
spec:
containers:
- name: kubernetes-dashboard
#此次修改为下载的镜像地址
image: docker.io/siriuszg/kubernetes-dashboard-amd64:v1.5.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9090
protocol: TCP
args:
# Uncomment the following line to manually specify Kubernetes API server Host
# If not specified, Dashboard will attempt to auto discover the API server and connect
# to it. Uncomment only if the default does not work.
#此处修改为apiserver地址即可
- --apiserver-host=http://192.168.1.90:8080
livenessProbe:
httpGet:
path: /
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat > dashboard-service.yaml <EOF
kind: Service
apiVersion: v1
metadata:
labels:
app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort
ports:
- port: 80
targetPort: 9090
selector:
app: kubernetes-dashboard
EOF

创建相对于服务

1
2
3
kubectl create -f kubernetes-dashboard.yaml
kubectl create -f dashboard-service.yaml
#ps 如果要删除则把命令中create替换为delete即可

测试

1
2
3
kubectl get deployment --all-namespaces
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system kubernetes-dashboard 1 1 1 1 1d
1
2
3
kubectl get svc --all-namespaces
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-system kubernetes-dashboard 10.10.30.200 <nodes> 80:32317/TCP 1d
1
2
3
kubectl get pod -o wide --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
kube-system kubernetes-dashboard-2899419805-686b7 1/1 Running 1 1d 172.8.17.2 192.168.1.92

看到相对应服务已经运行即可
访问 http://192.168.1.90:8080/ui