Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

目录

一、Centos7 配置说明

1.1   Firewalld(防火墙)

 1.2   SELinux

二、安装准备工作

2.1   安装环境

2.2   部署环境说明

2.3. 配置主机名(master和node节点都执行)

2.3.1 修改主机名

2.3.2 修改hosts文件

2.3.3 禁用swap

2.3.4 设置kubernetes源

三、Docker安装(master和node节点都执行)

3.1 卸载/更新已经安装的Docker

3.2 安装Docker环境

3.2.1 配置docker源

3.2.2 安装依赖包

3.2.3 设置从stable仓库获取docker

3.2.4 安装Docker

3.2.5 启动Docker(并设置为开机启动)

3.2.6 命令补全

3.2.7 镜像加速(并修改Cgoup Driver)

四、Keepalived安装(master节点安装)

4.1 安装keepalived

4.2 keepalived配置

4.3 启动keepalived

4.4 VIP查看

五、安装k8s(master和node节点都执行)

5.1 查看kubernetes版本

5.2 安装kubelet、kubeadm和kubectl(注意版本号,根据需要进行改变)

5.3 启动kubelet(并设置为开机启动)

5.4 命令补全

5.5 下载镜像

5.6 查看已经下载的镜像

六、网络插件(flannel)配置(Master执行)

6.1 br_netfilter模块加载

6.2 内核参数永久修改

七、初始化Master(Master节点执行)

7.1 创建初始化文件

7.1.1 获取默认的初始化参数文件

7.1.2 查看init.default.yaml文件

7.1.3 配置初始化文件

7.2 初始化kubernetes

7.3 加载环境变量

八、node节点加入集群

8.1 开启Master节点防火墙端口

8.2 加入集群

九、安装网络插件(Master)

十、Client配置(client端执行) 

十一、Dashboard搭建(Master端执行)

11.1 下载yaml

11.2 修改镜像地址

11.3 配置yaml

11.4 新增管理员账号

11.5 部署Dashboard

11.6 使用火狐浏览器浏览

十二、查找问题方式

12.1 查看Pod详细信息

12.2 防火墙的问题

12.3 Dashboard 证书过期问题

12.4 Node节点执行kubectl命令出错问题

参考资料


概述:

  这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别)。使用了Centos 7系统。

PS:

  篇幅有点长,但是比较详细、比较全面。(请注意文章最后分享的word文档,可以解决DNS的问题)

一、Centos7 配置说明

1.1   Firewalld(防火墙)

 CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server、kubelet等等)需要相互通信的端口号。在安全的内部网络环境中可以关闭防火墙服务。

关闭防火墙的命令:

1 # firewall-cmd --state           #查看防火墙状态
2 # systemctl stop firewalld.service        #停止firewall
3 # systemctl disable firewalld.service     #禁止firewall开机启动

如果你不想关闭防火墙,请把以下端口开放(在防火墙开放以下端口)

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第1张图片

 1.2   SELinux

 建议禁用SELinux,让容器可以读取主机文件系统

 执行命令:

1 # getenforce        #查看selinux状态
2 # setenforce 0       #临时关闭selinux
3 # sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  #永久关闭(需重启系统)
4 # shutdown -r now   #重启系统

二、安装准备工作

2.1   安装环境

软硬件

最低配置

推荐配置

CPU和内存

Master: 至少2 Core和4G内存

Node:至少4 Core和16G内存

Master:4 core和16G内存

Node:应根据需要运行的容器数量进行配置

Linux操作系统

基于x86_64架构的各种Linux发行版本,Kernel版本要求在3.10及以上

Red Hat Linux 7

CentOS 7

 说明:

  以上为建议配置,实际安装过程中,Master必须2 core 及以上(否则安装失败,切记),Node可以采用1 core。

2.2   部署环境说明

主机列表:

主机名

Centos版本

ip

docker version

flannel version

Keepalived version

主机配置

备注

master01

7.6.1810

192.168.0.6

18.09.9

v0.11.0

v1.3.5

2C2G

control plane

work01

7.6.1810

192.168.0.10

18.09.9

/

/

1C2G

worker nodes

work02

7.6.1810

192.168.0.12

18.09.9

/

/

1C2G

worker nodes

k8s 版本(可根据需要进行更改):

主机名

kubelet version

kubeadm version

kubectl version

备注

master01

v1.16.4

v1.16.4

v1.16.4

kubectl选装

work01

v1.16.4

v1.16.4

v1.16.4

kubectl选装

work02

v1.16.4

v1.16.4

v1.16.4

kubectl选装

2.3. 配置主机名(master和node节点都执行)

2.3.1 修改主机名

 Master主机改为master01,执行以下命令:

1 # hostnamectl set-hostname master01 #修改主机名称为master01
2 # more /etc/hostname  #查看修改结果

同样的修改node01和node02(注意主机名为node01和node02)

 说明:

  退出重新登陆即可显示新设置的主机名master01,重新登录之后

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第2张图片

2.3.2 修改hosts文件

 执行以下命令:

cat >> /etc/hosts << EOF
192.168.0.6     master01
192.168.0.10   node01
192.168.0.12   node02
EOF

2.3.3 禁用swap

 Kubeadm建议关闭交换空间的使用,简单来说,执行swapoff -a命令,然后在/etc/fstab中删除对swap的加载,并重新启动服务器即可。

 临时禁用,执行以下命令:

# swapoff -a

 永久禁用,需要在swapoff -a之后,执行以下命令:

# sed -i.bak '/swap/s/^/#/' /etc/fstab

2.3.4 设置kubernetes源

 2.3.4.1 新增kubernetes源

 执行以下命令:

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

 2.3.4.2 更新缓存

# yum clean all
# yum -y makecache

三、Docker安装(master和node节点都执行)

 注意:

  安装docker之前,最好确认一下,kubernetes支持哪些版本的docker(kubernetes和docker的版本要对应,否则可能会造成重新安装)。

3.1 卸载/更新已经安装的Docker

# 卸载docker

#1. 列出安装过的包

# yum list installed | grep docker

#2. 根据安装过的包进行卸载

# yum -y remove docker-ce-cli.x86_64
# yum -y remove docker-ce.x86_64
# yum -y remove containerd.io

# 更新docker

# yum -y update docker

3.2 安装Docker环境

3.2.1 配置docker源

如已安装过docker,则不需要进行此步骤

# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

3.2.2 安装依赖包

# yum install -y yum-utils device-mapper-persistent-data lvm2

3.2.3 设置从stable仓库获取docker

# yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

3.2.4 安装Docker

# yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y

说明:

       执行以上命令之前,可以看看docker版本,执行以下命令查看

# yum list docker-ce --showduplicates | sort -r

3.2.5 启动Docker(并设置为开机启动)

# systemctl start docker && systemctl enable docker

3.2.6 命令补全

安装bash-completion

# yum -y install bash-completion

加载bash-completion

# source /etc/profile.d/bash_completion.sh

3.2.7 镜像加速(并修改Cgoup Driver)

# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://usydjf4t.mirror.aliyuncs.com", 
    "https://registry.docker-cn.com"]
    , "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

# systemctl daemon-reload
# systemctl restart docker

说明:

       修改cgroupdriver是为了消除告警:

[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/

四、Keepalived安装(master节点安装)

简介:

       为了保证Master的高可用,会使用多个服务器(作为一个Master集群,一般使用3台服务器,每台服务器都需要安装kube-apiserver、kube-controller-manager、kube-scheduler、etcd等组件),客户端将会通过负载均衡器进行访问kube-apiserver(Master服务器)。在不同的平台下,负载均衡的实现方式不同:公有云一般都有现成的实现方案(这里不进行过多讨论);本地集群,可以选择硬件(例如,F5)或者软件来实现,kubernetes社区推荐方案HAProxy和Keepalived,其中HAProxy负责负载均衡,而Keepalived负责对HAProxy进行监控和故障切换。

说明:

  由于只有一台8核机器,这里没有使用master集群,也没有使用HAProxy,但是仍然提供了Keepalived的安装,以便于使用虚拟IP(192.168.0.130),Node节点可以通过该IP进行访问Master,即使其他Master加入之后,也是通过虚拟IP进行访问

4.1 安装keepalived

# yum -y install keepalived

4.2 keepalived配置

保留默认配置

# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived_default.conf

写入新的配置

# cat < /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   router_id master01
}

vrrp_instance VI_1 {
    state MASTER
    interface enp0s3
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.130
    }
}

EOF

说明:

       特别注意红色字体文本,master01是主机名称(如果有其他主机则使用对应的主机名称进行替换),enp0s3是网卡名称(每个linux系统可能不一致),192.168.0.130是虚拟IP

4.3 启动keepalived

# service keepalived start && systemctl enable keepalived

4.4 VIP查看

在master机器上执行

# ip a

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第3张图片

可以看到VIP在master01(目前只有一台master,以后可能会有多个master)上

五、安装k8s(master和node节点都执行)

5.1 查看kubernetes版本

# yum list kubelet --showduplicates | sort -r

说明:

       本文安装的kubelet版本是1.16.4,该版本支持的docker版本为1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09。

5.2 安装kubelet、kubeadm和kubectl(注意版本号,根据需要进行改变)

# yum install -y kubelet-1.16.4 kubeadm-1.16.4 kubectl-1.16.4

说明:

  • kubelet 运行在集群所有节点上,用于启动Pod和容器等对象的工具
  • kubeadm 用于初始化集群,启动集群的命令工具
  • kubectl 用于和集群通信的命令行,通过kubectl可以部署和管理应用,查看各种资源,创建、删除和更新各种组件

5.3 启动kubelet(并设置为开机启动)

# systemctl enable kubelet && systemctl start kubelet

5.4 命令补全

# echo "source <(kubectl completion bash)" >> ~/.bash_profile
# source .bash_profile

5.5 下载镜像

Kubernetes几乎所有的安装组件和Docker镜像都放在goolge自己的网站上,直接访问可能会有网络问题,这里的解决办法是从阿里云镜像仓库下载镜像,拉取到本地以后改回默认的镜像tag。本文通过运行image.sh脚本方式拉取镜像。

直接执行以下命令(灰色背景部分):

# more image.sh #以下为image.sh文件的内容,如没有该文件,可以在当前文件下创建文件
#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers #阿里云镜像仓库地址,可以按需修改
version=v1.16.4 #安装的kubernetes的版本(可以按需修改)
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
  docker pull $url/$imagename
  docker tag $url/$imagename k8s.gcr.io/$imagename
  docker rmi -f $url/$imagename
done
## 执行以下命令进行安装
# chmod 755 image.sh  #给文件授权
# ./image.sh  #执行文件

注意:

       如果需要下载其他的kubernetes版本,需要修改对应的版本号(红色字体部分)

5.6 查看已经下载的镜像

# docker images

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第4张图片

六、网络插件(flannel)配置(Master执行)

本文的k8s网络使用flannel,该网络需要设置内核参数bridge-nf-call-iptables=1,修改这个参数需要系统有br_netfilter模块。

说明:

       K8s网络插件有很多,使用网络插件之前,要进行判断是否和系统适配。

6.1 br_netfilter模块加载

查看br_netfilter模块:

# lsmod |grep br_netfilter

如果系统没有br_netfilter模块则执行下面的新增命令,如有则忽略。

永久新增br_netfilter模块:

# cat > /etc/rc.sysinit << EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
EOF
# cat > /etc/sysconfig/modules/br_netfilter.modules << EOF
modprobe br_netfilter
EOF

# chmod 755 /etc/sysconfig/modules/br_netfilter.modules

6.2 内核参数永久修改

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

# sysctl -p /etc/sysctl.d/k8s.conf

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第5张图片

七、初始化Master(Master节点执行)

说明:

       Master的kubernetes之前,须先确定要确定的网络插件(因为可能会影响到初始化的参数),不同的系统可能需要使用不同的网络插件(Centos 不支持 Calico)。

       建议先阅读网络插件资料。(Kubernetes所有网络插件说明:这里)

7.1 创建初始化文件

7.1.1 获取默认的初始化参数文件

# kubeadm config print init-defaults > init.default.yaml

7.1.2 查看init.default.yaml文件

# cat init.default.yaml

7.1.3 配置初始化文件

创建kubeadm.conf.yaml文件,输入以下内容:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.4
apiServer:
  certSANs:    #填写所有kube-apiserver节点的hostname、IP
  - master01
  - node01
  - node02
  - 192.168.0.6
  - 192.168.0.10
  - 192.168.0.12
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
networking:
  podSubnet: "10.244.0.0/16"  #这里需要根据具体的网络插件来配置(这里使用的flannel网络插件配置)

说明:

       注意红色字体部分内容,需要根据init.default.yaml文件和自己的需要进行更改

7.2 初始化kubernetes

# kubeadm init --config=kubeadm.conf.yaml

说明:

       如果初始化失败,可执行kubeadm reset后重新初始化(执行以下两条命令)

# kubeadm reset
# rm -rf $HOME/.kube/config

初始化成功,如下图:

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第6张图片

按照提示执行下面的命令,复制配置文件到普通用户的home目录下:

# mkdir -p $HOME/.kube

# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# chown $(id -u):$(id -g) $HOME/.kube/config

在其他位置(或者主机),保存如下信息(其他node节点加入集群时使用):

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

  kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \
    --discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562 \
    --control-plane     

Then you can join any number of worker nodes by running the following on each as root:
## node加入集群时使用
kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \
--discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562

7.3 加载环境变量

# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

# source .bash_profile

八、node节点加入集群

8.1 开启Master节点防火墙端口

说明:

       如果master节点的防火墙已经关闭,可以直接跳过此小节

       如果node已经加入其它集群,需要退出集群,请执行在node上执行:

# kubeadm reset

查看防火墙状态:

# systemctl status firewalld 或者 firewall-cmd --state

开启6443端口

# firewall-cmd --zone=public --add-port=6443/tcp --permanent

## 出现success表明添加成功

命令含义:

--zone #作用域

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

重启防火墙

# systemctl restart firewalld.service

说明:

       Kubernetes集群中的Service可使用的物理机端口号范围为30000~32767

一次全部公开所有可能使用的端口:

# firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent

# systemctl restart firewalld.service

8.2 加入集群

Master节点在初始化完成之后,最后一行代码,如下:

# kubeadm join 192.168.0.130:6443 --token afeqnz.vhp0e8rtrw6jz6v2 \

    --discovery-token-ca-cert-hash sha256:d6a450aafb14e82efb69fbcb71e426bfed8e423d64b37bac85b3ff8ce7dc6562

把两行信息复制出来,在node节点执行,如下图:(join成功)

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第7张图片

在master节点,执行以下命令查看已经加入的节点

# kubectl get nodes

说明:

       由于没有安装网络插件,这里STATUS为NotReady

九、安装网络插件(Master)

 在master主机上执行以下命令:

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

说明:

       由于网络原因,可能会安装失败,可以在浏览器直接下载kube-flannel.yml文件(也可以在浏览器打开url地址,然后复制文件内容到文件),然后再执行apply

查看节点状态,执行以下命令:

# kubectl get nodes

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第8张图片

说明:

       STATUS从NotReady变为Ready

       如安装网络插件之后,长时间状态没有变更,则可以试试重启机器(或者是虚拟机,这里是指Centos 7系统)。

十、Client配置(client端执行) 

     无,可以用master节点代替

十一、Dashboard搭建(Master端执行)

11.1 下载yaml

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

说明:

       如果连接超时,可以多试几次。也可以在这里下载

11.2 修改镜像地址

# sed -i 's/kubernetesui/registry.cn-hangzhou.aliyuncs.com\/loong576/g' recommended.yaml

说明:

       也可以采用其他的一些镜像(切换镜像,需要更改recommended.yaml文件)

更改镜像操作:

       如果需要更改镜像的版本号,需要在阿里云查询一下是否有镜像

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第9张图片

       下载镜像命令:(注意阿里云是没有带版本号的,需要自己录入版本号)

# docker pull registry.cn-hangzhou.aliyuncs.com/kubernetesui/dashboard:v2.0.0-rc5

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第10张图片

11.3 配置yaml

外网访问

# sed -i '/targetPort: 8443/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' recommended.yaml

说明:

       配置NodePort,外部通过https://NodeIp:NodePort 访问Dashboard,此时端口为30001

11.4 新增管理员账号

创建超级管理员的账号用于登录Dashboard

# cat >> dashboard-adminuser.yaml << EOF
---
# ------------------- dashboard-admin ------------------- #
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
EOF
 

生效service account

# kubectl apply -f dashboard-adminuser.yaml 

11.5 部署Dashboard

# kubectl apply -f recommended.yaml

状态查看:

# kubectl get all -n kubernetes-dashboard

令牌查看:

# kubectl describe secrets -n kubernetes-dashboard dashboard-admin

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第11张图片

令牌为(一定要注意可能存在换行的情况):


说明:

       如果安装Dashboard过程中出现问题,要仔细进行排查,可能pod还没有安装完成,等待一段时间之后,再看看,如果还是不行,则需要考虑一下中途是否有问题,是否需要重新安装。

       如果忘记Token,可以通过以下命令获取:

# kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard |grep  kubernetes-dashboard-token | awk '{print $1}') |grep token | awk '{print $2}'

11.6 使用火狐浏览器浏览

https://192.168.0.6:30001

部署Dashboard之后,由于证书问题导致无法在浏览器浏览

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第12张图片

 

1.简易方法

       解决:就是在当前页面用键盘输入 thisisunsafe

       注意是直接输入 不要去地址栏输入

2.生成自签名证书:

 在master机器上执行如下操作,步骤如下:

mkdir /root/keys
cd /root/keys
openssl genrsa -out dashboard.key 2048
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=10.238.5.37'
# 证书过期时间设置为1年
openssl x509 -req -days 365 -in dashboard.csr -signkey dashboard.key -out dashboard.crt

  2.1 查询dashboard在那个节点

# kubectl get pod -n kubernetes-dashboard -o wide

 2.2 在master01节点上查询kubernetes-dashboard容器ID

# docker ps | grep dashboard

 2.3 在master01节点上查询kubernetes-dashboard容器挂载目录

 # docker inspect -f {{.Mounts}} 54ec4048250a

 2.4 从将证书文件拷贝到master01节点上kubernetes-dashboard容器挂载目录

scp dashboard.csr dashboard.key dashboard.crt /var/lib/kubelet/pods/a0eaacdd-69d1-4a3c-b08b-972c02e2bd27/volumes/kubernetes.io~secret/kubernetes-dashboard-certs

 2.5 在master01节点重启kubernetes-dashboard容器

 2.6 获取token 重新登录

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第13张图片

3. 阅读参考资料(并执行命令,除了删除命令)

解决Kubernetes Dashboard由于自身证书问题导致一些浏览器不能打开的问题_OMCloud的技术博客_51CTO博客

十二、查找问题方式

12.1 查看Pod详细信息

查看所有Pod

# kubectl get pods --all-namespaces

查看Pod日志(使用真实的pod名称,替换pod-name)

# kubectl logs pod-name --all-containers=true

查看状态异常的Pod的详细信息

# kubectl describe pod kubernetes-dashboard-8478d57dc6-p7jt7 --namespace=kubernetes-dashboard

说明:

       可以看到在哪台Node上创建了容器

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第14张图片

12.2 防火墙的问题

建议关闭防火墙

# systemctl stop firewalld.service

# systemctl disable firewalld.service

说明:

       如果不关闭防火墙,可能会造成容器产生错误,如no host to route,是因为防火墙拦截了端口。

12.3 Dashboard 证书过期问题

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)_第15张图片

12.4 Node节点执行kubectl命令出错问题

错误描述信息:

The connection to the server raw.githubusercontent.com was refused - did you specify the right host or port?

需要将master节点的 /etc/kubernetes/admin.conf 文件复制到node节点下。

参考资料

Kubernetes的安装:

Centos7.6部署k8s v1.16.4高可用集群(主备模式)_Kubernetes中文社区

CentOS Linux 开放端口:

Centos 7防火墙firewalld开放80端口 - archoncap - 博客园

Kubernetes所有网络插件说明:

Creating a cluster with kubeadm | Kubernetes

PS:

     最后分享一个问题的解决方案(在发布网站/应用的时候可能需要),下载

如果您在使用该文章进行安装kubernetes集群时遇到问题,请在下方留言,我看到后会及时回复。

--------------------------------------------------------------------------------------------------------

2020-04-20 补充

官网安装资料:

Kubernetes 安装 kubeadm _ Kubernetes(K8S)中文文档_Kubernetes中文社区(中文版,低版本,作为参考)

使用kubeadm创建Kubernetes集群 _ Kubernetes(K8S)中文文档_Kubernetes中文社区(中文版,低版本,作为参考)

Installing kubeadm | Kubernetes (英文版,最新版本)

你可能感兴趣的:(kubernetes,docker,容器)