二進制安裝K8s之部署CoreDNS 和Dashboard
CoreDNS 和Dashboard 的yaml文件在 k8s源代碼壓縮包里面可以找到對應(yīng)的配置文件,很多人從網(wǎng)上直接下載使用別人的,會導致問多問題,k8s aipverson 每個版本略有不同。
下載與自己集群版本一樣的源碼文件,這里使用1.20
wget https://storage.googleapis.com/kubernetes-release/release/v1.20.9/kubernetes.tar.gz
#解壓
tar -zxvf kubernetes.tar.gz
1、coredns.yaml 文件需要修改的內(nèi)容如下:
CoreDNS 文件路徑(源碼文件路徑)
./kubernetes/cluster/addons/dns/coredns/
image: registry.com/public/k8s.gcr.io/coredns:1.7.0
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 170Mi #修改
requests:
cpu: 100m
memory: 70Mi
args: [ "-conf", "/etc/coredns/Corefile" ]
volumeMounts:
- name: config-volume
mountPath: /etc/coredns
selector:
k8s-app: kube-dns
clusterIP: 10.0.0.2 #修改dnsip
ports:
- name: dns
port: 53
protocol: UDP
#執(zhí)行
kubectl apply -f coredns.yaml
2、創(chuàng)建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
3、查看狀態(tài)
所有的STATUS :Running 都必須顯示 READY顯示 1/1
[root@k8s-master01 ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-567b6cf877-lf8t6 1/1 Running 0 8m24s
calico-node-j6fzg 1/1 Running 0 8m25s
calico-node-l2v9z 1/1 Running 0 8m25s
calico-node-zn8ps 1/1 Running 0 8m25s
coredns-7fc97b887c-8m48p 1/1 Running 0 58m
4、Dashboard
dashboard文件 路徑(源碼文件路徑)
./kubernetes/cluster/addons/dashboard/
#默認Dashboard只能集群內(nèi)部訪問,修改Service為NodePort類型,暴露到外部:
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort #新增
ports:
- port: 443
targetPort: 8443
nodePort: 30001 #新增
selector:
k8s-app: kubernetes-dashboard
#執(zhí)行
kubectl apply -f dashboard.yaml
5、查看狀態(tài)
[root@k8s-master01 ~]# kubectl get pods,svc -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
pod/dashboard-metrics-scraper-c74849d7-9s4jg 1/1 Running 0 10h
pod/kubernetes-dashboard-bbf598857-zsr9w 1/1 Running 4 10h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/dashboard-metrics-scraper ClusterIP 10.0.0.200 <none> 8000/TCP 10h
service/kubernetes-dashboard NodePort 10.0.0.182 <none> 443:30001/TCP 10h
6、使用輸出的token登錄Dashboard
訪問地址:https://NodeIP:30001
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')