部署Dashboard和CoreDNS
大约 2 分钟
部署Dashboard和CoreDNS
一、部署Dashboard
1.1 Dashboard简介
Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
1.2 下载 YAML 文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
# 默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部:
vim recommended.yaml
# 修改如下
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
nodePort: 30001
type: NodePort
selector:
k8s-app: kubernetes-dashboard
# 启动服务
kubectl apply -f recommended.yaml
# 查看
kubectl get pods,svc -n kubernetes-dashboard
访问地址:https://NodeIP:30001
二、部署 DNS
2.1 coreDNS简介
服务发现是 K8s 的一项很重要的功能。K8s 的服务发现有两种方式,一种是将 svc 的 ClusterIP 以环境变量的方式注入到 pod 中;一种就是 DNS,从 1.13 版本开始,coreDNS 就取代了 kube dns 成为了内置的 DNS 服务器。
2.2 下载部署脚本
git clone https://github.com/coredns/deployment.git
cd deployment/kubernetes
2.3 部署
总体流程是我们使用 deploy.sh
生成 yaml 并保存成 coredns.yaml
文件并执行 kubectl apply -f coredns.yaml
进行部署 ,如果要卸载,执行 kubectl delete -f coredns.yaml
deploy.sh
脚本依赖 jq
命令,所以先确保 jq
已安装: apt install -y jq
提示
如果集群中没有 kube-dns 或低版本 coredns,我们直接用 -i
参数指定集群 DNS 的 CLUSTER IP,这个 IP 是安装集群时就确定好的,可以在 kubelet
的 clusterDNS
配置设置,示例:
./deploy.sh -i 10.0.0.2 > coredns.yaml
kubectl apply -f coredns.yaml
# 查看是否部署成功
kubectl get pods -n kube-system
>
NAME READY STATUS RESTARTS AGE
coredns-5ffbfd976d-j6shb 1/1 Running 0 32s