资源准备
- 部署一套 k8s 的集群:详细操作
- Dashborad 所需镜像准备:
- pod-infrastructure:lastest
- kubernetes-dashboard-amd64:
因为一些不可抗拒因素这两个镜像的下载可以通过如下的两个仓库:
docker pull registry.access.redhat.com/rhel7/pod-infrastructure
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.6.3
- 把 2 个镜像 push 到 k8s 集群中所有 docker 配置的私有仓库中
Dashboard 的配置
最近 k8s 新增加了 deployment 的概念,每个 server 可以与 deployment 进行绑定实现 k8s 的部署
Deployment 文件准备
这个是一个 yaml 格式的文件,这里需要配置 kubernetes-dashboard-amd64 实际私有仓库的地址及 k8s 集群实际的 apiserver 地址:
dashboard.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
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: 私有仓库地址/kubernetes-dashboard-amd64:latest
resources:
# keep request = limit to keep this container in guaranteed class
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 9090
args:
- --apiserver-host=k8s 集群 apiserver 的地址
livenessProbe:
httpGet:
path: /
port: 9090
initialDelaySeconds: 30
timeoutSeconds: 30
Service 配置文件准备:
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
启动 dashboard:
这里先创建 service 或者 deployment 都是可以的
注意:使用 kubectl 的时候,如果没有配置 linux 的 alias 或者 kubeconfig 那么需要使用 kubectl -s APISERVER 的地址进行操作
创建 deployment
kubectl create -f dashboard.yaml
创建 service
kubectl create -f dashboard-service.yaml
验证 dashboard 是否部署成功的方式
- kubectl get deployment --all-namespaces
- kubectl get svc --namespace=kube-system
- kubectl get pod -o wide --all-namespaces
- 浏览器访问:http://实际APISERVER的地址/ui
删除 deployment
kubectl delete -f dashboard.yaml
删除 service
kubectl delete -f dashboard-service.yaml
截止目前 k8s 的 dashboard 就部署完毕了^_^