龙空技术网

K8S进阶之路一:kubeadm安装K8S集群(全网最简版)

小邬Linux运维 117

前言:

而今我们对“centos最简版”大约比较着重,看官们都需要了解一些“centos最简版”的相关资讯。那么小编同时在网络上搜集了一些有关“centos最简版””的相关资讯,希望同学们能喜欢,大家快快来学习一下吧!

一、集群环境信息及安装前准备

本次部署一共使用三台机器,其中master一台,node两台,基于flannel网络

1、设置三台机器如下/etc/hosts内容如下

192.168.91.100 master

192.168.91.200 k8s-node2

192.168.91.129 k8s-node1

三台机器设置一致

2、关闭防火墙,selinux,swap分区(三台机器均关闭)

1):关闭防火墙

1、systemctl stop firewalld

2、systemctl disable firewalld

2):禁用selinux

1、setenforce 0

2、vi /etc/selinux/config

SELINUX=disabled

3):关闭swap分区

1、swapoff -a

2、sed -ri 's/.*swap.*/#&/' /etc/fstab

4):配置系统内核参数使流过网桥的流量也进入iptables/netfilter框架

1、modprobe br_netfilter

2、echo -e 'net.bridge.bridge-nf-call-iptables = 1 \nnet.bridge.bridge-nf-call-ip6tables = 1' >> /et c/sysctl.conf && sysctl -p

二、配置yum源及k8s相关软件包

备注:以下操作在所有节点执行相同操作

1.配置yum、epel、k8s及docker源

[root@k8s-master ~]# cd /etc/yum.repos.d

[root@k8s-master yum.repos.d]# yum install wget -y

[root@k8s-master yum.repos.d]# rm -f CentOS-*

[root@k8s-master yum.repos.d]#wget -O /etc/yum.repos.d/CentOS-Base.repo

[root@k8s-master yum.repos.d]#wget -P /etc/yum.repos.d/

[root@k8s-master yum.repos.d]#cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=

enabled=1

gpgcheck=0

EOF

[root@k8s-master yum.repos.d]#wget

[root@k8s-master yum.repos.d]#rpm -import rpm-package-key.gpg #安装key文件

[root@k8s-master yum.repos.d]#wget

[root@k8s-master yum.repos.d]#yum clean all && yum makecache fast

2.安装kubeadm和相关工具包

[root@k8s-master ~]# cd

[root@k8s-master ~]# yum install docker kubectl-1.10.0 kubeadm-1.10.0 kubelet-1.10.0 kubernetes-cni-0.6.0 -y #需要制定版本,默认是最新的,由于不可描述的原因,暂时最新的还无法下载

3.启动相关服务并设置开机自启

[root@k8s-master ~]# systemctl daemon-reload

[root@k8s-master ~]# systemctl enable docker && systemctl restart docker

[root@k8s-master ~]# systemctl enable kubelet && systemctl restart kubelet

4.下载K8S相关镜像

[root@k8s-master ~]# cat down_k8s.sh

#!/bin/bash

images=(kube-proxy-amd64:v1.10.0 kube-scheduler-amd64:v1.10.0 kube-controller-manager-amd64:v1.10.0 kube-apiserver-amd64:v1.10.0

etcd-amd64:3.1.12 pause-amd64:3.1 kubernetes-dashboard-amd64:v1.8.3 k8s-dns-sidecar-amd64:1.14.8 k8s-dns-kube-dns-amd64:1.14.8

k8s-dns-dnsmasq-nanny-amd64:1.14.8)

for imageName in ${images[@]} ; do

docker pull keveon/$imageName

docker tag keveon/$imageName k8s.gcr.io/$imageName

docker rmi keveon/$imageName

done

[root@k8s-master ~]# sh down_k8s.sh

5.查看镜像是否下载

执行docker images,一共是11个

三、初始化k8s集群(仅master节点)

[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.10.0 --pod-network-cidr=10.244.0.0/16(指定pod的网段)<br>#指定版本,需要与docker中的镜像版本一致

配置环境变量

[root@k8s-master ~]# mkdir -p $HOME/.kube

[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

查看集群状态:

[root@k8s-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master NotReady master 10m v1.10.0

可以看到STATUS显示未就绪,这是因为现在还没有网络可用,下一步我们需要配置网络功能

四、配置网络

1、docker pull quay.io/coreos/flannel:v0.9.1-amd64

2、mkdir -p /etc/cni/net.d/

3、cat <<EOF> /etc/cni/net.d/10-flannel.conf

{"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}}

EOF

4、mkdir /usr/share/oci-umount/oci-umount.d -p

5、mkdir /run/flannel/

6、cat <<EOF> /run/flannel/subnet.env

FLANNEL_NETWORK=172.100.0.0/16

FLANNEL_SUBNET=172.100.1.0/24

FLANNEL_MTU=1450

FLANNEL_IPMASQ=true

EOF

然后执行命令

kubectl apply -f

安装完成后,稍等一下再查看集群状态,发现已经就绪了(master上)

[root@k8s-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready master 1h v1.10.0

五、node节点加入集群(所有node上执行)

该执行命令来自步骤三kubeadmin join

[root@k8s-node1 ~]# kubeadm join 192.168.199.116:6443 --token fauq6n.e1iv2mbxotq5a1zp --discovery-token-ca-cert-hash sha81dbbeb6

备注:token周期为12h,如果token失效,则需要重新生成token再加入

1、查看token,执行kubeadm token list

2、没有token则生成,执行kubeadm token create

3、获取ca证书sha256编码hash值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null |

openssl dgst -sha256 -hex | sed 's/^.* //'

4、node节点加入

kubeadm join 10.167.11.153:6443 --token o4avtg.65ji6b778nyacw68 --discovery-token-ca-cert-hash sha256:2cc3029123db737f234186636330e87b5510c173c669f513a9c0e0da395515b0

5、在master查看是否成功

至此、K8S集群安装成功

标签: #centos最简版