一、安装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
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
2.2使用虚IP地址登录,我这里使用chrome浏览器登录
#获取下登录token,执行以下语句,复制登录的token到浏览器中点登录即可
kubectl -n kubernetes-dashboard create token admin-user
2.3使用kubeconfig登录
cp /etc/kubernetes/admin.kubeconfig kubeconfig
#编辑kubeconfig文件,在最下边增加一行:token: 上边获取的token
vim kubeconfig
#选择kubeconfig登录即可
二、安装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
三、集群验证
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
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