ubuntu 22.04二进制安装kubernetes v1.25.3和containerd高可以用集群(四)

488 阅读1分钟

一、安装dashboard和metric-server

一、安装dashboard

dashboard是kubernetes社区推出的一款kubernetes管理的UI工具。学习下可以,生成上建议不要通过图形化操作kubernetes,保证稳定性你们懂的。

以下操作均在master01上执行

1.下载dashboard

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
#编辑yaml文件,修改有注释的地方
vim recommended.yaml

image.png

image.png

image.png

2.安装dashboard

以下操作均在master01上执行

2.1执行安装

#创建dashboard
kubectl create -f recommended.yaml
#创建dashboard的访问权限
cat > admin.yaml <<EOF
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
EOF

#执行yaml文件
kubectl apply -f admin.yaml

image.png

2.2使用虚IP地址登录,我这里使用chrome浏览器登录

1667104468749.png

#获取下登录token,执行以下语句,复制登录的token到浏览器中点登录即可
kubectl -n kubernetes-dashboard create token admin-user

image.png

1667104653586.png

2.3使用kubeconfig登录

cp /etc/kubernetes/admin.kubeconfig kubeconfig
#编辑kubeconfig文件,在最下边增加一行:token: 上边获取的token
vim kubeconfig
#选择kubeconfig登录即可

1667105572168.png

image.png

二、安装metrics-server

以下操作均在master01上执行

1.下载最新的metrics-server

wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml

2.修改yaml文件

vim components.yaml
...
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
#添加下面内容        
        - --kubelet-insecure-tls
        - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem #注意二进制包证书文件是front-proxy-ca.pem
        - --requestheader-username-headers=X-Remote-User
        - --requestheader-group-headers=X-Remote-Group
        - --requestheader-extra-headers-prefix=X-Remote-Extra-    
...
        volumeMounts:
        - mountPath: /tmp
          name: tmp-dir
#添加下面内容 
        - name: ca-ssl
          mountPath: /etc/kubernetes/pki
...
      volumes:
      - emptyDir: {}
        name: tmp-dir
#添加下面内容 
      - name: ca-ssl
        hostPath:
          path: /etc/kubernetes/pki 
#修改镜像,注意我这里直接修改为阿里云镜像
sed -ri 's@(.*image:) .*metrics-server(/.*)@\1 registry.aliyuncs.com/google_containers\2@g' components.yaml

3.安装metrics-server

kubectl apply -f components.yaml
kubectl get pod -n kube-system | grep metrics
#查看pod的资源使用情况
kubectl top pod -n kube-system

image.png

三、集群验证

1.安装busybox

cat >> busybox-demo.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
spec:
  containers:
  - name: busybox
    image: busybox:1.28
    command:
      - sleep
      - "3600"
    imagePullPolicy: IfNotPresent
  restartPolicy: Always
EOF
#执行yaml文件
kubectl apply -f busybox-demo.yaml
#查看pod状态
kubectl get pod bysybox -owide

image.png

2.开始验证

  • Pod必须能解析Service
  • Pod必须能解析跨namespace的Service
  • 每个节点都必须要能访问Kubernetes的kubernetes svc 443和kube-dns的service 53
  • Pod和Pod之前要能通
  • 同namespace能通信
  • 跨namespace能通信
  • 跨机器能通信
#查看service
kubectl get svc
#查看dns解析服务
kubectl exec busybox -n default -- nslookup kubernetes
kubectl exec busybox -n default -- nslookup kube-dns.kube-system
telnet 10.96.0.1 443

image.png

image.png