[CentOS7 部署K8S集群]

[CentOS7 部署K8S集群]

一、部署规划

192.168.38.11   k8s-master
192.168.38.12   k8s-node1
192.168.38.13   k8s-node2

二、基础环境

1、关闭防火墙

systemctl stop firewalld

2、关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0

3、关闭swapip

swapoff -a 临时关闭
free 可以通过这个命令查看swap是否关闭了
vim /etc/fstab 永久关闭

4、添加主机名与ip对应关系

cat >> /etc/hosts << EOF
172.16.1.38 k8s-master
172.16.1.149 k8s-node1
172.16.1.150 k8s-node2
EOF

5、将桥接的IPV4流量传递到iptables 的链

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

6、安装docker
  • a、下载并安装

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

  • b、设置开机自启

systemctl enable docker
systemctl start docker

  • c、查看docker版本

docker --version

7、 添加阿里云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=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

8、 安装kubeadm,kubelet和kubectl

yum clean all
yum makecache fast
yum install -y kubelet kubeadm kubectl
yum install -y cri-tools-1.12.0-0.x86_64 --nogpgcheck
yum install -y kubectl-1.14.1-0.x86_64 --nogpgcheck
yum install -y kubeadm-1.14.1-0.x86_64 --nogpgcheck
systemctl enable kubelet

三、master节点

1、部署Kubernetes Master
  • 1)初始化kubeadm

kubeadm init
–apiserver-advertise-address=172.16.1.38
–image-repository registry.aliyuncs.com/google_containers
–kubernetes-version v1.20.2
–service-cidr=10.1.0.0/16
–pod-network-cidr=10.244.0.0/16

当出现如下结果,表示初始化顺利
在这里插入图片描述

建议至少2 cpu ,2G,非硬性要求,1cpu,1G也可以搭建起集群。但是:

1个cpu的话初始化master的时候会报 [WARNING NumCPU]: the number of available CPUs 1 is less than the required 2

部署插件或者pod时可能会报warning:FailedScheduling:Insufficient cpu, Insufficient memory

如果出现这种提示,说明你的虚拟机分配的CPU为1核,需要重新设置虚拟机master节点内核数。

查看镜像

docker images
在这里插入图片描述

  • 2)使用kubectl工具

复制如下命令直接执行

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

下面就可以直接使用kubectl命令了
在这里插入图片描述

2、安装Pod网络插件(CNI)**
  • 1)安装插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml在这里插入图片描述

  • 2)查看是否部署成功
`$ kubectl get pods -n kube-system`

在这里插入图片描述

  • 3)再次查看node,可以看到状态为ready
    在这里插入图片描述

安装失败了,怎么清理环境重新安装啊?执行一条命令:

kubeadm reset

四、Node节点加入集群

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.20.2

复制上面命令,在node节点上执行

kubeadm join 172.16.1.38:6443 --token zc8045.22yoyqrxczjj99ym
–discovery-token-ca-cert-hash sha256:f1040a72a216dbb4f8321e7530b89a371420205e782cff8f0c876a0c8aae7cb0

执行成功后:
在这里插入图片描述
再通过master节点查看node,发现node节点已以成功加入集群,并且Status状态为Ready
在这里插入图片描述
如果token忘记了,则可以通过如下操作:

1)查看token,如果token失效,则重新生成一个

kubeadm token list

kubeadm token create

2)获取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/^.* //’

3)节点加入集群

kubeadm join 172.16.1.38:6443 --token zc8045.22yoyqrxczjj99ym \
    --discovery-token-ca-cert-hash sha256:f1040a72a216dbb4f8321e7530b89a371420205e782cff8f0c876a0c8aae7cb0

五、测试kubernetes集群

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
在这里插入图片描述
kubectl get pod,svc -o wide
在这里插入图片描述
通过浏览器访问:http://172.16.1.38:30758可以正常访问

六、使用rancher管理k8s集群

1、安装rancher
  • 单容器内置数据部署

docker run -d --privileged --restart=unless-stopped
-p 80:80 -p 443:443
–privileged
rancher/rancher:latest

  • 其他部署模式

参考官方文档:https://docs.rancher.cn/docs/rancher2/quick-start-guide/deployment/quickstart-manual-setup/_index

2、导入k8s集群
  • 获取执行命令

集群 —> 添加集群 —> 导入 —> 获取注册命令

  • k8s-master注册

根据情况在k8s-master执行对应的注册命令

  • 查看cattle-cluster-agent状态

kubectl get pods -n cattle-system

确保cattle-cluster-agent-*的状态为Running

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值