k8s安装 
 

#kubernetes(k8s)的安装方法

五种方法:
kubernetes 二进制安装 (配置最繁琐,不亚于安装openstack)
kubeadm 安装 (谷歌推出的自动化安装工具,网络有要求)
minikube 安装 (仅仅用来体验k8s)
yum 安装 (最简单,版本比较低====学习推荐此种方法)
go编译安装 (最难)

kubeadm

kubeadm是一个专门快速部署kubernetes集群的工具。
可以使用kubeadm init 来初始化master节点,然后使用kubeadm join 将其他的node节点加入到集群中
kubeadm通过一个简单的配置是将一个最小可用的集群运行起来

  • 新用户可以从kubeadm开始快速搭建kubernetes
  • 熟悉的人可以使用kubeadm快熟搭建集群并测试他们的应用
  • 大型的项目可以配合其他工具,

官方文档
https://kubernetes.io/docs/reference/setup-tools/kubueadm/kubeadm
https://kubernetes.io/docs/setup/independet/install-kubeadm

基于kubeadm部署k8s

14 master kubeadm,kubelet,kubectl,docker
10 node01 kubeadm,kubelet,kubectl,docker
11 node02 kubeadm,kubelet,kubectl,docker

关闭防火墙个selinux

[root@master ~]# setenforce 0
setenforce: SELinux is disabled
[root@master ~]# iptables -F
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
[root@master ~]# systemctl stop NetworkManager
[root@master ~]# systemctl disable NetworkManger
Failed to execute operation: No such file or directory
[root@master ~]# systemctl disable NetworkManager
[root@master ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config 

部署主机并绑定hosts

[root@k8s-master ~]# vim /etc/hosts
192.168.200.14  k8s-master
192.168.200.10  k8s-node01
a92.168.200.11  k8s-node02
[root@master ~]# scp /etc/hosts 192.168.200.10:/etc/
[root@master ~]# scp /etc/hosts 192.168.200.20:/etc/

或者

1)主机名

分别在三台机器执行对应命令,设置主机名

[root@centos01 ~]# hostnamectl set-hostname k8s-master
[root@centos02 ~]# hostnamectl set-hostname k8s-node01
[root@centos03 ~]# hostnamectl set-hostname k8s-node02

2)关闭防火墙、selinux

[root@centos01 ~]# systemctl disable firewalld
[root@centos01 ~]# systemctl stop firewalld
[root@centos01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

3)设置内核

[root@centos01 ~]# vim /etc/sysctl.d/k8s.conf
## 添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
## 执行命令生效
[root@centos01 ~]# modprobe br_netfilter
[root@centos01 ~]# sysctl -p /etc/sysctl.d/k8s.conf

4)免密钥

在master节点进行对2台node节点进行免密钥登陆

[root@k8s-master ~]# ssh-keygen
[root@k8s-master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ IP 
[root@k8s-master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@ IP

 5)禁用swapoff
    swapoff -a
    sed -i -e /swap/d /etc/fstab

禁用swap

swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab

主机配置初识化

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz
[root@k8s-master ~]# swapoff -a
[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab
cat <<EOF>> /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
[root@k8s-master ~]# modprobe br_netfilter
[root@k8s-master ~]# sysctl -p
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

所有主机部署docker环境

安装docker

yum install docker -y

或yum  install  docker-ce -y

systemctl start docker
systemctl enable docker

所有主机配置阿里云镜像加速

主机配置阿里YUM源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

#查看你想要安装的版本
yum list kubeadm --showduplicates -y | sort -r

例子:安装1.21.0
yum install -y kubelet-1.21.0-0 kubeadm-1.21.0-0 kubectl-1.21.0-0 --disableexcludes=kubernetes

所有主机安装用YUM安装kubelet kubeadm kubectl

yum install -y install kubelet kubeadm kubectl --disableexcludes=kubernetes

 systemctl  start kubelet
 systemctl  enable  kubelet

swapoff -a

或者

################################配置yum源###################################

    yum源三台机器都需要配置,这里我们以master主机为例,node节点也按照此yum配置即可

[root@k8s-master ~]# yum -y install wget
[root@k8s-master ~]# cd /etc/yum.repos.d
## 配置docker-ce源
[root@k8s-master yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 配置kubernetes源
[root@k8s-master yum.repos.d]# vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1   
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1
## 下载校验文件
[root@k8s-master ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@k8s-master ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
## 导入校验文件
[root@k8s-master ~]# rpm --import rpm-package-key.gpg
[root@k8s-master ~]# rpm --import yum-key.gpg
[root@k8s-master ~]# yum clean all  && yum makecache fast

###################################################################

部署kubernetes集群

组件介绍

  • kubeadm:安装工具,使所有的组件都会以容器的方式运行
  • kubectl:客户端连接k8s api 工具
  • kubelet:运行在node节点,用来启动容器的工具

推荐使用阿里云的yum源

所有主机安装kubelet kubeadm kubectl

yum list kubeadm --showduplicates -y | sort -r

yum install -y install kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0 docker-ce
[root@k8s-master k8s]# ls
conntrack-tools-1.4.4-7.el7.x86_64.rpm  kubernetes-cni-0.8.7-0.x86_64.rpm
cri-tools-1.13.0-0.x86_64.rpm           libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm
kubeadm-1.20.0-0.x86_64.rpm             libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm
kubectl-1.20.0-0.x86_64.rpm             libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm
kubelet-1.20.0-0.x86_64.rpm
yum -y install *.rpm
[root@k8s-master ~]# systemctl enable kubelet.service 
#kubelet刚安装后是无法启动的,需要加入节点或者初始化为master后才可以启动

配置init-config.yaml
kubeadm的配置项都吨出在configMap中,可以将其写入配置文件,方便管理

#在master主机上配置
[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml
#打印初始化相关的配置到config.yaml文件中

kubeadm config view:查看当前集群中的配置值
kubeadm config print join-defaults:输出kubeadm join 默认参数文件内容

init-config.yaml

预下载 k8s 集群组件镜像

执行 kubeadm init 执行节点安装 k8s 集群时,最大的问题是在此过程中会去 k8s.gcr.io 的 kubernetes 官方镜像源下载 k8s 组件的镜像,所以我们可以提前预下载所需要的组件镜像:

查看 kubeadm init 时所需要的组件镜像列表: kubeadm config images list

k8s.gcr.io/kube-apiserver:v1.16.9
k8s.gcr.io/kube-controller-manager:v1.16.9
k8s.gcr.io/kube-scheduler:v1.16.9
k8s.gcr.io/kube-proxy:v1.16.9
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.15-0
k8s.gcr.io/coredns:1.6.2

编写脚本,使用阿里云的 k8s 官方镜像源来下载这些镜像:

脚本的作用是从阿里云的 kubernetes 镜像源拉取镜像到本地,然后修改镜像的标签,以符合 k8s.gcr.io 的地址格式。
cat <<EOF > pull-k8s-images.sh
for i in `kubeadm config images list`; do
  imageName=${i#k8s.gcr.io/}
  docker pull registry.aliyuncs.com/google_containers/$imageName
  docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
  docker rmi registry.aliyuncs.com/google_containers/$imageName
done;
EOF

或者

 more pull-i.sh
images=(
#kubeadm config images list  
    kube-apiserver:v1.23.4
    kube-controller-manager:v1.23.4
    kube-scheduler:v1.23.4
    kube-proxy:v1.23.4
    pause:3.6
    etcd:3.5.1-0
    coredns:v1.8.6

)
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
done

配置docker源

编辑/etc/docker/daemon.json文件:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

或cat <<EOF> /etc/docker/daemon.json
 {undefined
   "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
  

配置docker kubelet

2台node节点也需要修改对应配置

## 设置kubelet启动时忽略swap报错
[root@k8s-master ~]# vim /etc/sysconfig/kubelet 
 KUBELET_EXTRA_ARGS="--fail-swap-on=false"
## 设置开机自启动
[root@k8s-master ~]# systemctl daemon-reload 
[root@k8s-master ~]# systemctl enable docker && systemctl restart docker
[root@k8s-master ~]# systemctl enable kubelet && systemctl restart kubelet

或者

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

在所有kubernetes节点上设置kubelet使用cgroupfs,与dockerd保持一致,否则kubelet会启动报错
默认kubelet使用的cgroup-driver=systemd,改为cgroup-driver=cgroupfs
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf重设kubelet服务,并重启kubelet服务
systemctl daemon-reload && systemctl restart kubelet

安装master节点

[root@k8s-master ~]# kubeadm config images list(pull) --config init-config.yaml  #查看配置文件关联的镜像(下载)
[root@k8s-master master]# ls
coredns_1.7.0.tar           kube-controller-manager_v1.20.0.tar  pause_3.2.tar
etcd_3.4.13-0.tar           kube-proxy_v1.20.0.tar
kube-apiserver_v1.20.0.tar  kube-scheduler_v1.20.0.tar
[root@k8s-master master]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@k8s-master master]# ls | while read line
> do
> docker load < $line
> done  #保存镜像
[root@k8s-master ~]# docker images
REPOSITORY                                                        TAG                 IMAGE IDED             SIZE
registry.aliyuncs.com/google_containers/kube-proxy                v1.20.0             10cc8819nths ago       118MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.20.0             ca9843d3nths ago       122MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.20.0             b9fa1895nths ago       116MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.20.0             3138b6e3nths ago       46.4MB
registry.aliyuncs.com/google_containers/etcd                      3.4.13-0            0369cf43nths ago       253MB
registry.aliyuncs.com/google_containers/coredns                   1.7.0               bfe3a36enths ago       45.2MB
registry.aliyuncs.com/google_containers/pause                     3.2                 80d28bednths ago       683kB
[root@k8s-master ~]# kubeadm init - -config=init-config.yaml  #初始化安装k8s

如图:

解决方法
使用阿里云镜像
运行kubeadm init时加上阿里云镜像的参数--image-repository=registry.aliyuncs.com/google_containers,如下:(版本改为自己需要的)
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=192.168.86.135/16 --kubernetes-version=v1.22.7

解决:k8s[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp [::1]:10248: connect: connection refused
搭建k8s出现的问题记录

[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp [::1]:10248: connect: connection refused。
这个是犹豫没有更改docker.service.
找到路径:vim /usr/lib/systemd/system/docker.service

 给他中间添加一个
内容为: --exec-opt native.cgroupdriver=systemd
有些人的=后面是cgroupfs 但是我不管用,我改成systemd就行了,你们都可以试试

随后先删除初始化导致的错误文件夹
rm -rf /etc/kubernetes/manifests
然后重启docker
systemctl daemon-reload
systemctl restart docker
最后初始化k8s
kubeadm init --config /home/k8s/kubeadm.yaml
 

1.问题描述:
当K8S配置过程中出现出现以下错误:
在这里插入图片描述
2.解决方案
使用以下命令,将这个文件删除

rm -rf /var/lib/etcd

在这里插入图片描述

注:DOCKER和kublet无法启动

我是用kubeadm安装的k8s,现在通过Aqua扫描出相关配置问题,需要修改kubelet的启动参数;

默认配置文件名为:10-kubeadm.conf

vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf

 例如我添加了然后在ExecStart也需要加key:

KUBE_ALLOW_PRIV=--allow-privileged=false

加载配置文件重启kubelet

systemctl stop kubelet
systemctl daemon-reload
systemctl start kubelet

kubeadm join时出现错误:[ERROR Port-10250]: Port 10250 is in use;[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists

初次使用kubeadm构建k8s集群,所以对子节点加入管理节点的过程认识不足,导致我先对子节点进行了kubeadm init之后,才准备进行kubeadm join操作。结果出现了如下错误:

[root@k8s-node02 ostrich5yw]# kubeadm join 192.168.139.129:6443 --token abcdef.0123456789abcdef \
>     --discovery-token-ca-cert-hash sha256:3ac4ae8b5b3b08f2b8cd8a85be7b37bc5855e749ec9126e3d87bebfb2235af9b
[preflight] Running pre-flight checks
    [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.6. Latest validated version: 18.09
error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR DirAvailable--etc-kubernetes-manifests]: /etc/kubernetes/manifests is not empty
    [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
    [ERROR Port-10250]: Port 10250 is in use
    [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

问题原因:只有父节点需要运行kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log进行初始化;对于子节点来说,无需进行kubeadm init进行初始化,直接运行kubeadm join加入父节点即可。

解决方法:运行kubeadm reset重置子节点,之后直接对子节点使用kubeadm join 192.168.139.129:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:3ac4ae8b5b3b08f2b8cd8a85be7b37bc5855e749ec9126e3d87bebfb2235af9b将其加入对应的父节点中。
 

kubectl默认会在执行的用户家目录下面的。kube目录下寻找config文件,所以在当前目录下创建一个.kube文件,并且将初始化生成的admin.conf拷贝到./kube/config

初始化的时候会提示,直接拉取执行

初始化时

安装node节点

#初始化时自动提示,在node节点直接执行
[root@k8s-node01 ~]# kubeadm join 192.168.200.14:6443 --token abcdef.0123456789abcdef \
>     --discovery-token-ca-cert-hash sha256:546631d9bc3d6fe0043d6b4da27ec3332a2909b991cb66a4156760fc63be78ca 


--token(临时二十四小时连接验证)

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
提示在master上执行kubectl get nodes,获取node节点信息

特别注意上面提示的后续操作(三)

上面要求在NODE节点的主机上,以 root 用户执行下面的操作,

kubeadm join 192.168.200.131:6443 --token 7j01ut.pbdh60q732m1kd4v --discovery-token-ca-cert-hash sha256:de1dc033ae5cc27607b0f271655dd884c0bf6efb458957133dd9f50681fa2723

  注意,别复制这里的,看你自己上面安装后输出的内容。
    这段代码中的 token 可能存在有效期 1 天,如果过期,可以参考下面地址获取最新的 token
    https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#join-nodes

如果你使用的多个主机组建的集群,可以在其他主机执行上面的命令加入到集群中。
 注:对于新节点的添加,安装和MASTER节点的过程是一致的,各个NODE上进行下面的安装过程;

yum install -y kubeadm  --disableexcludes=kubernetes
 systemctl  start kubelet
 systemctl  status kubelet
 systemctl  enable kubelet

kubeadm join 192.168.86.135:6443 --token n9wz2b.jr96iq7ybu85ydw5 \
    --discovery-token-ca-cert-hash sha256:600d5738c0f71cc89c1ac1cb5953fb9ec1581e463114320df750646aee6e9cd7

[root@k8s-master ~]# kubectl get nodes  
NAME         STATUS     ROLES                  AGE     VERSION
k8s-master   NotReady   control-plane,master   9m      v1.20.0
k8s-node01   NotReady   <none>                 2m17s   v1.20.0
k8s-node02   NotReady   <none>                 2m13s   v1.20.0

部署网络插件

下载kube-flannel.yml文件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

应用kube-flannel.yml文件得到运行时容器

kubectl apply -f kube-flannel.yml (在master机器上执行)

然后查看节点状态: kubectl get nodes (在master机器上执行)

master和worker节点(如果有)都是NotReady的,这时运行kubectl get pods -n kube-system -o wide会看到两个coredns都是Pending的。
这个时候需要安装flannel或者weave。这两个网络组件只需要安装其中一个即可

说明还没有就绪,需要等一会儿,然后节点就就绪了;

或者

安装flannel

yum install  flannel -y
master节点notready 的原因就是没有网络插件。

此时master主机上传kube-flannel.yml 所有主机上传flannel_v0.12.0-amd64.tar

[root@k8s-master ~]# ls
docker  flannel_v0.12.0-amd64.tar  init-config.yaml  k8s  kube-flannel.yml  master
[root@k8s-master ~]# scp flannel_v0.12.0-amd64.tar 192.168.200.10:/root/
[root@k8s-master ~]# scp flannel_v0.12.0-amd64.tar 192.168.200.11:/root/

docker load < flannel_v0.12.0-amd64.tar  #所有主机导入镜像

[root@k8s-master ~]# kubectl apply -f kube-flannel.yml   #master运行

[root@k8s-master ~]# kubectl get nodes  #再次查看节点
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   17m   v1.20.0
k8s-node01   Ready    <none>                 11m   v1.20.0
k8s-node02   Ready    <none>                 11m   v1.20.0
[root@k8s-master ~]# kubectl get pods -n kube-system

部署k8s的时候kube-flannel.yml下载不下来解决

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

wget kube-flannel.yml的时候显示连接失败
是因为网站被墙了,建议在/etc/hosts文件添加一条
199.232.68.133 raw.githubusercontent.com
就可以正常下载了。
下载完成后创建并查看

kubectl  create -f kube-flannel.yml
kubectl  get pod -n kube-system


启动失败
检查之前命令没有问题后,查看连接的kube-flannel.yml

vim kube-flannel.yml

发现里面有

quay.io/coreos/flannel:v0.11.0-arm64
这种镜像,访问不到quay.io,被墙了。

拷贝kube-flannel.yml内容到本地文件。

然后替换了所有quay.io为quay-mirror.qiniu.com

kubectl apply -f kube-flannel.yml

然后我发现quay-mirror.qiniu.com也进不去,只好手动下载
flanneld-v0.12.0-amd64.docker


下载成功后

docker load < flanneld-v0.12.0-amd64.docker

即可
然后再次

kubectl apply -f kube-flannel.yml


启动成功

现在我们在 Master 节点查看下集群节点信息,就会发现已经包含该 Node 节点了。
kubectl get node -o wide
查看下集群所有 pod 列表,发现符合预期 Master、Node 启动服务列表。
 kubectl get pods --all-namespaces -o wide
 

删除kubernetes-dashboard

kubectl get secret,sa,role,rolebinding,services,deployments --namespace=kube-system | grep dashboard


第一种方式

sudo kubectl delete deployment kubernetes-dashboard --namespace=kube-system
sudo kubectl delete service kubernetes-dashboard  --namespace=kube-system
sudo kubectl delete role kubernetes-dashboard-minimal --namespace=kube-system
sudo kubectl delete rolebinding kubernetes-dashboard-minimal --namespace=kube-system
sudo kubectl delete sa kubernetes-dashboard --namespace=kube-system
sudo kubectl delete secret kubernetes-dashboard-certs --namespace=kube-system
sudo kubectl delete secret kubernetes-dashboard-csrf --namespace=kube-system
sudo kubectl delete secret kubernetes-dashboard-key-holder --namespace=kube-system

第二种方式

$ sudo kubectl -n kube-system delete $(sudo kubectl -n kube-system get pod -o name | grep dashboard)
 

重新部署Flannel网络
  kubectl create -f kube-flannel.yml

安装D安上board UI

 一键执行

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

所有主机部署Dashboard
默认这个部署文件中,会独立创建一个kubernetes-dashboard的命令空间。
dashboard的镜像来自于docker hub官方

[root@k8s-master ~]# ls
dashboard_v2.0.0.tar       init-config.yaml  master
docker                     k8s               metrics-scraper_v1.0.4.tar
flannel_v0.12.0-amd64.tar  kube-flannel.yml  recommended.yaml

[root@k8s-master ~]# docker load < dashboard_v2.0.0.tar 
[root@k8s-master ~]# docker load < metrics-scraper_v1.0.4.tar

[root@k8s-master ~]# vim recommended.yaml 
 41   ports:
 42     - port: 443
 43       targetPort: 8443
 44       nodePort: 32443
164   name: cluster-admin  #管理权限

[root@k8s-master ~]# kubectl apply -f recommended.yaml   #部署文件
[root@k8s-master ~]# kubectl get pods -n kubernetes-dashboard  #查看
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-7b59f7d4df-css6p   1/1     Running   0          38s
kubernetes-dashboard-74d688b6bc-nvhdj        1/1     Running   0          38s
#此时就可以使用浏览器访问
使用koten进入
[root@k8s-master ~]# kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard-token | awk '{print $1}') | grep token | awk '{print $2}'  #获取到密码

 查看svc服务ip以及端口
kubectl get svc -n kubernetes-dashboard

命名空间可详细查看

安装metrics-server
在node节点下载镜像

[root@k8s-node01 ~]# ls
dashboard_v2.0.0.tar  flannel_v0.12.0-amd64.tar  metrics-scraper_v1.0.4.tar
docker                k8s                        metrics-server-amd64_v0.3.6.tar
[root@k8s-node01 ~]# docker load < metrics-server-amd64_v0.3.6.tar 
932da5156413: Loading layer  3.062MB/3.062MB
7bf3709d22bb: Loading layer  38.13MB/38.13MB
Loaded image: bluersw/metrics-server-amd64:v0.3.6
[root@k8s-node01 ~]# docker tag bluersw/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6

修改kubernetes apiserver启动参数

[root@k8s-master ~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
 44     - --enable-aggregator-routing=true  #添加的

下载一个配置文件
[root@k8s-master ~]# kubectl create -f components.yaml 

#此时就可以查看状态了
[root@k8s-master ~]# kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   235m         5%     1187Mi          69%       
k8s-node01   81m          2%     749Mi           43%       
k8s-node02   68m          1%     825Mi           48%    

或者

kubernetes--k8s--web管理界面使用--dashboardv1.8.3版本安装详细步骤_直到世界的尽头-CSDN博客

Kubernetes 部署 Dashboard - 简书

 

 

Logo

开源、云原生的融合云平台

更多推荐