目录

1. 安装K8S

1.1 基础环境配置(所有节点全部执行)

1.1.1 关闭防火墙

1.1.2 关闭 selinux

1.1.3 关闭swap

1.1.4 设置主机名称

1.1.5 修改hosts(注意:修改自己的内网ip)

1.1.6 将桥接的 IPv4 流量传递到 iptables 的链

1.1.7 时间同步

1.2 安装docer(所有节点全部执行)

1.3 安装kubeadm、kubelet 、 kubectl(所有节点全部执行)

1.3.1 添加阿里云 YUM 软件源 

1.3.2 添加 Kubernetes yum 源

1.3.3 安装 kubeadm, kubelet 和 kubectl

1.4 启动k8s(master节点执行)

1.4.1 初始化master节点(注意:10.0.20.8修改为自己的master节点ip,其他忽动)

1.4.2 使用 kubectl 工具

1.4.3 检查master节点

 1.4.4 安装pod网络插件

1.4.5 如果token过期重新获取token

1.5 集群配置

1.5.1 子节点加入集群(子节点执行)

1.5.2 检查节点是否加入集群 (master节点执行)

 1.5.3 创建pod (master节点执行)

2 安装dashboard(master节点)

2.1 下载dashboard文件

2.2 安装

2.3 查看安装节点

 2.4 查看web页面

 2.5 登陆dashboard(master节点)

2.5.1 生成token文件

 2.5.2 获取token

 2.5.3 登录


1. 安装K8S

我使用的是腾讯云的轻量级云服务器,操作系统都重置为Centos7.6,集群走内部网络

服务器配置为:

名称CPU内存硬盘
master2核4GB60GB
node12核4GB60GB
node22核2GB50GB

只要跟我环境一样,全场无脑执行命令即可,需要修改个人配置的地方我会标注,没有特别标注的单元无脑执行即可


1.1 基础环境配置(所有节点全部执行)

1.1.1 关闭防火墙

systemctl stop firewalld

1.1.2 关闭 selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config

1.1.3 关闭swap

echo "vm.swappiness = 0">> /etc/sysctl.conf 
swapoff -a && swapon -a
sysctl -p

1.1.4 设置主机名称

1.1.4.1 master节点

hostnamectl set-hostname k8s-master

1.1.4.2 node1节点

hostnamectl set-hostname k8s-node1

1.1.4.3 node2节点

hostnamectl set-hostname k8s-node2

1.1.5 修改hosts(注意:修改自己的内网ip)

vim /etc/hosts

在最下方添加内网ip映射

10.0.20.8 k8s-master
10.0.20.2 k8s-node1
10.0.24.14 k8s-node2

1.1.6 将桥接的 IPv4 流量传递到 iptables 的链

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

1.1.7 时间同步

yum install ntpdate -y
 
ntpdate time.windows.com

1.2 安装docer(所有节点全部执行)

下载dockerd源有可能比较慢,耐心等待一下

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
 
yum -y install docker-ce-18.06.1.ce-3.el7
 
systemctl enable docker && systemctl start docker
 
docker --version

1.3 安装kubeadm、kubelet 、 kubectl(所有节点全部执行)

1.3.1 添加阿里云 YUM 软件源 

cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
} 
EOF

1.3.2 添加 Kubernetes yum 源

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
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

1.3.3 安装 kubeadm, kubelet 和 kubectl

yum install -y kubelet-1.17.3 kubectl-1.17.3 kubeadm-1.17.3 
 
systemctl enable kubelet

1.4 启动k8s(master节点执行)

1.4.1 初始化master节点(注意:10.0.20.8修改为自己的master节点ip,其他忽动)

kubeadm init \
--apiserver-advertise-address=10.0.20.8 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.3 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

初始化完成后会生成一段代码,这段代码在子节点加入的时候需要执行,如下图

1.4.2 使用 kubectl 工具

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

1.4.3 检查master节点

kubectl get nodes

如下图则代表master节点已启动

 1.4.4 安装pod网络插件

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

1.4.5 如果token过期重新获取token

执行命令生成token

kubeadm token generate

根据token输出添加命令,create后面带刚才生成的token文件

kubeadm token create ins9ct.n3vpfy86dsjglmxy --print-join-command --ttl=0

如此便获得新的加入命令了,拿去子节点执行


1.5 集群配置

1.5.1 子节点加入集群(子节点执行)

这时候就用到1.4.1单元中生成的那段代码了,我的如下

kubeadm join 10.0.20.8:6443 --token 9z52d6.eq693qimjgc1znu4 \
    --discovery-token-ca-cert-hash sha256:ce4e0694eadb2c27255d225facdb04fc2da19fbbf432e779f0070f5b3a40a67b 

哪个子节点需要加入集群就在哪个子节点执行,然后如下图等待完成

如果提示下图错误,有可能是token过期了,按照1.4.5单元的操作重新获取token然后执行加入命令即可

如果重新生成token还不可以就检查是部署防火墙和开放端口的问题,检查master节点是否开启了6443

1.5.2 检查节点是否加入集群 (master节点执行)

kubectl get nodes

如下图,两个node节点都加入了集群即为成功

 1.5.3 创建pod (master节点执行)

查询现有的pod:

kubectl get pod,svc

创建一个新的nginx的pod

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

如下图,新建了一个pod,创建成功

既然部署成功了,我们需要测试访问一下我们的nginx,80对外映射的端口为32617,根据ip再找到节点,外部访问就是节点ip+32617端口,如果是云服务器一定要设置防火墙端口的开放。

如下图即访问成功,nginx部署成功


2 安装dashboard(master节点)

2.1 下载dashboard文件

curl -o kubernetes-dashboard.yaml  https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

如果下载失败,可以使用下面的链接下载,然后上传到服务器中

链接: https://pan.baidu.com/s/1nFN8blWpR3pKGAgpHDd_jg?pwd=3dg9 提取码: 3dg9

2.2 安装

kubectl apply -f kubernetes-dashboard.yaml

2.3 查看安装节点

执行命令,查看dashboard在哪个节点上:

kubectl get pods -n kube-system -o wide

根据结果可以看到dashboard在node1的节点上,对外的端口为:31080,这个是配置文件固定好的

 2.4 查看web页面

根据节点和端口进行访问

https://节点ip:31080/

使用谷歌浏览器访问会提示受限

点击高级选择继续前往即可进入页面,页面如下

 2.5 登陆dashboard(master节点)

登陆的话是选择令牌的方式,我们接下来先获取令牌

2.5.1 生成token文件

执行命令:

kubectl get secret -n kube-system|grep  kubernetes-dashboard-token

得到如下图token文件

 2.5.2 获取token

根据上面生成的token文件,获取token,将上面获取的token文件替换命令

kubectl describe secret token文件名 -n kube-system

如下图得到token

 2.5.3 登录

粘贴token 到登录页的第二项令牌处

点击登录,就进入管理页面了

其他的可以自行探索 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐