Windows玩轉Kubernetes系列4-搭建K8S Dashboard

下載官方yaml文件

最新的配置文件v2.0.0-beta8版本recommended.yaml,UI地址node

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

原文件:git

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

修改成:github

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort #新增
  ports:
    - port: 443
      nodePort: 30001 #新增
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

原文件內容web

spec:
  containers:
    - name: kubernetes-dashboard
      image: kubernetesui/dashboard:v2.0.0-beta8
      imagePullPolicy: Always
      ports:
        - containerPort: 8443
          protocol: TCP

修改成:docker

spec:
  # nodeName: master.node 指定到master節點,指不指定根據須要
  containers:
    - name: kubernetes-dashboard
      image: kubernetesui/dashboard:v2.0.0-beta8
      # imagePullPolicy: Always
      imagePullPolicy: IfNotPresent #不存在再下載
      ports:
        - containerPort: 8443
          protocol: TCP

下載鏡像和啓動

在master節點執行segmentfault

docker pull kubernetesui/dashboard:v2.0.0-beta8

執行api

kubectl apply -f recommended.yaml

查看pod和service狀態服務器

kubectl get pods,svc -n kubernetes-dashboard -o wide
kubectl describe po kubernetes-dashboard --namespace=kubernetes-dashboard

若是發現app

kubernetes-dashboard crashloopbackoff
kubectl get pods --all-namespaces
systemctl stop kubelet
systemctl stop docker
iptables --flush
iptables -tnat --flush
systemctl start kubelet
systemctl start docker
kubectl delete -f recommended.yaml

列出全部nodes: kubectl get node
刪除節點:kubectl delete node node3
查看對應node上的pods信息: kubectl get pods -o wide | grep node3ide

從新加入
在刪除的node3對應的服務器上執行:kubeadm reset

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -L -n
mkdir cert

cd cert/

openssl genrsa -out dashboard.key 2048
openssl req -days 36000   -new -out dashboard.csr    -key dashboard.key   -subj '/CN=**192.168.56.106**'


openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt

kubectl create secret generic kubernetes-dashboard-certs     --from-file=dashboard.key     --from-file=dashboard.crt      -n kubernetes-dashboard

新建create-admin.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

運行

kubectl apply -f create-admin.yaml

查看sa和secret

kubectl get sa,secrets -n kubernetes-dashboard
kubectl describe secret admin-user-token-t79xh -n kubernetes-dashboard

獲取token登陸成功:

相關文章
相關標籤/搜索