五、部署Dashboard和CoreDNS

1、部署 coredns

1.1 下载Dashboard的yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/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

1.2 部署Dashboard服务

# kubectl apply -f recommended.yaml
# kubectl get pods,svc -n kubernetes-dashboard
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-694557449d-pzjvv   1/1     Running   0          20s
pod/kubernetes-dashboard-9774cc786-8mprh         1/1     Running   0          20s

NAME                                TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.0.0.230   <none>        8000/TCP        20s
service/kubernetes-dashboard        NodePort    10.0.0.24    <none>        443:30001/TCP   20s

访问地址:https://NodeIP:30001

1.3 创建service account并绑定默认cluster-admin管理员集群角色

# kubectl create serviceaccount dashboard-admin -n kube-system


# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin


# kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

使用输出的token登录Dashboard。

2、 部署CoreDNS

2.1 CoreDNS用于集群内部Service名称解析。

2.1 生成CoreDNS的yaml文件

mkdir /opt/tools/coredns &&  cd /opt/tools/coredns/
 
wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed
wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/deploy.sh
chmod +x deploy.sh

./deploy.sh -i 10.0.0.2 > coredns.yml

注:10.0.0.2应该是k8s集群中pod地址段中的IP

注:生成CoreDNS的yaml文件需要jq命令

CentOS7安装 jq

#安装EPEL源:
yum install epel-release

#安装jq:
yum install jq

2.2 部署coredns服务

kubectl apply -f coredns.yml 

查看coredns服务是否成功创建

# kubectl get pods -n kube-system 
NAME                          READY   STATUS    RESTARTS   AGE
coredns-6fdfb45d56-qv8hl      1/1     Running   0          2m7s
kube-flannel-ds-amd64-bnbrf   1/1     Running   3          43h
kube-flannel-ds-amd64-mtn2f   1/1     Running   2          44h

2.3 DNS解析测试

# kubectl run -it --rm dns-test --image=busybox:1.28.4 sh
If you don't see a command prompt, try pressing enter.
/ # nslookup kubernetes
Server:    10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes
Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local

解析没问题。

猜你喜欢

转载自blog.csdn.net/weixin_44033360/article/details/107412684