首页 > 其他分享 >k8s_安装dns_metalLB_dashboard_metrics合集

k8s_安装dns_metalLB_dashboard_metrics合集

时间:2024-06-09 19:03:15浏览次数:27  
标签:metalLB kubectl -- system metrics dashboard kube

部署 Dashboard

Dashboard 是官方提供的一个UI,可用于基本管理K8s资源。

# 在master节点执行

# 
wget \
https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml
vi recommended.yaml 
增加 nodePort: 30001 和 type: NodePort
......
spec:
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort
......

kubectl apply -f recommended.yaml
kubectl get pods -n kubernetes-dashboard

如果顺利,则可以访问 https://192.168.15.81:30001
界面提示需要输入 token,先不要输入,因为还没创建用户,接下去我们创建用户

K8S有两种用户:User 和 Service Account,User 给人用,Service Account 给进程用,让进程有相关权限,Dashboard 是一个进程,我们就可以创建一个Service Account 给它


# 创建service account并绑定默认cluster-admin管理员集群角色:
# 创建用户
kubectl create serviceaccount dashboard-admin -n kube-system
# 用户授权
kubectl create clusterrolebinding dashboard-admin-binding --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

# kubernetes v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建
cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: dashboard-admin
  annotations:
    kubernetes.io/service-account.name: "dashboard-admin"
  namespace: kube-system
EOF
# 查看token是否正确生成
kubectl describe serviceaccounts dashboard-admin -n kube-system
如果顺利会出现下述输出
...
Tokens:              dashboard-admin
...

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

取得token后就可以使用token登录Dashboard了
https://192.168.15.81:30001

安装metrics

安装完之后,可以看到k8s所有组件,但各组件cpu内存使用量没有值,还需要安装metrics组件才行,安装完metric就可以看到各node以及pod的cpu/mem实时使用量了
下面是如何安装metrics

下载Metrics Server 配置文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics.yaml

修改配置文件,修改以下内容
......
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=10250
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls     # 增加这行,禁用 TLS 证书验证。生产环境禁用这个选项并配置了正确的 TLS 证书和签名
        image: registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.7.1             # 改为从阿里云代理拉取镜像
......

kubectl apply -f ./metrics.yaml

过1-2分钟,然后验证安装
kubectl get apiservice | grep metrics
确保 `v1beta1.metrics.k8s.io` 的状态为 `True`。
如果不是,则运行下面命令排查错误
kubectl get pods -n kube-system | grep metrics-server
kubectl logs metrics-server-75d7968c55-qxlcr -n kube-system
kubectl get events --sort-by='.metadata.creationTimestamp' -n kube-system | tail -n10

如果一切ok,则可以查看节点和 Pod 的 CPU 使用情况

NAME           CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
node-1         500m         25%    1024Mi          50%
node-2         300m         15%    512Mi           25%
node-3         700m         35%    2048Mi          75%

kubectl top pods --all-namespaces

NAMESPACE     NAME                                    CPU(cores)   MEMORY(bytes)
default       my-app-deployment-7d9f6d89d9-abcde      100m         128Mi
kube-system   coredns-64897985d-vfx8s                 5m           12Mi
kube-system   metrics-server-85f4b44d5c-mr4tj         10m          24Mi

此时再次打开dashborad,就可以看到node和pod的cpu内存使用情况。

配置k8s dns

在 Kubernetes 集群中,CoreDNS 是默认的 DNS 服务器,它负责处理集群内所有的 DNS 请求。
kubectl edit cm coredns -n kube-system (此命令修改coredns 配置)
kubectl describe cm coredns -n kube-system(此命令查看coredns 配置)
出现类似以下结果

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
    

标签:metalLB,kubectl,--,system,metrics,dashboard,kube
From: https://blog.csdn.net/weilaozongge/article/details/139432233

相关文章