本地虚拟机搭建k8s集群完整篇

1.安装前置条件

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

  • 一台或多台机器【本人是三个,一个master,两个node】,操作系统 CentOS7.x-86_x64
  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB及以上
  • 集群中所有机器之间网络互通
  • 可以访问外网,需要拉取镜像
  • 禁止swap分区

 此处提供了安装虚拟机的一篇教程

安装参考链接
https://www.runoob.com/w3cnote/vmware-install-centos7.html

注:以下命令有的是需要在不同的机器去执行,有的是在所有的机器执行,请注意区分

2、安装之后系统的前置要求

2.1 关闭防火墙,三台机器全关闭

systemctl stop firewalld


2.2、关闭selinux,三台机器全关闭

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


2.3、关闭swap ,三台机器全关闭

swapoff -a


2.4、设置主机名

hostnamectl set-hostname 主机名,三个主机名分别设置成k8s-master,k8s-node1,k8s-node2


2.5、在master添加hosts

cat /etc/hosts
自己的IP k8s-master
自己的IP k8s-node1
自己的IP k8s-node2

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

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

2.7执行以下命令让设置生效

sysctl --system 

3、安装docker

3.1 安装docker依赖包

yum install -y yum-utils

3.2因为某些原因可能访问不到国外仓库或者速度较慢,此处设置为阿里的镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.3安装docker服务

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

3.4启动docker服务

systemctl start docker

3.5查看docker服务是否正常启动成功

systemctl status docker

出现如图则表示docker服务成功启动。

3.6 添加阿里云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
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF

3.7 安装kubeadm、kubelet和kubectl 由于版本更新频繁 此处指定版本安装

yum install -y kubeadm-1.19.0 kubelet-1.19.0 kubectl-1.19.0

此处执行命令以后如果出现以下两种错误:
错误一:
Error: Package: kubelet-1.19.2-0.x86_64 (kubernetes)
Requires: conntrack
错误二:
Error: Package: kubelet-1.14.2-0.x86_64 (kubernetes)
Requires: kubernetes-cni = 0.7.5

尝试一下解决方案:下载yum源,安装依赖包

cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/epel-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release
yum install conntrack-tools

3.8成功后启动k8s服务

systemctl enable kubelet

注:以上操作在三台机器都需要执行成功

4.在master节点上部署kubetnets 注:该操作只需要在master上面执行

kubeadm init --kubernetes-version=1.19.0 --apiserver-advertise-address=master的ip --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 

如果看到如下successfully,那么恭喜你成功啦

4.1创建文件夹将admin.conf文件 copy到对应的位置

mkdir -p $HOME/.kube 

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

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

scp -p /etc/kubernetes/admin.conf 【node1 OR node2】:/etc/kubernetes/admin.conf

4.2 接下来将两台node加入到集群中,分别在node1根node2执行刚刚 kubeadm init成功后下面打印的命令:

 4.3执行完命令后,在master节点中执行命令查看是否如图:

kubectl get nodes

如上图则表示成功了,如果报错:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

解决方法:

4.3.1:将主节点(master)中的“/etc/kubernetes/admin.conf”文件拷贝到两个node节点相同目录下,如图所示:

 4.3.2:配置环境变量

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

4.3.3:让配置立即生效

source ~/.bash_profile

5.安装部署CNI网络插件

5.1:在master机器上执行命令

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

5.2:成功后验证一下

 kubectl get pods -n kube-system

如果出现如下则恭喜你再一次成功啦

到此k8s的安装部署基本结束了,剩下的我们来

6 验证该集群是否可用

6.1 在kubenetes集群中创建一个pod 创建nginx

kubectl create deployment nginx --image=nginx

6.2 暴露Nginx端口

kubectl expose deployment nginx --port=80 --type=NodePort

6.3 查看Nginx端口

kubectl get pod,svc

如图所示:31669就是Nginx的访问端口

 6.4任意一个节点的ip加上端口访问看是否成功

 如上图则表示该集群搭建成功了。

以上的步骤都是我自己在本地实际操作过的,可能又些许借鉴的意义,但是可能你在自己安装过程中可能会遇到各种奇怪的问题,可以自己查找资料解决也可以一起沟通解决。

友情链接:k8s详细教程-调整版/k8s详细教程.md · yooome/LearningNotes - Gitee.com

搭建K8s集群一般需要至少两个节点,你可以在Ubuntu虚拟机搭建一个包含两个节点的集群。下面是一个简单的流程: 1. 在Ubuntu虚拟机上安装KubernetesDocker: ``` sudo apt-get update sudo apt-get install docker.io sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo touch /etc/apt/sources.list.d/kubernetes.list echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl ``` 2. 初始化K8s集群,并将第一个节点设置为主节点: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 3. 安装网络插件: ``` sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 4. 将其他节点加入到集群中: ``` sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` 5. 部署一个Deployment: ``` sudo kubectl create deployment nginx --image=nginx ``` 6. 部署一个Service: ``` sudo kubectl expose deployment nginx --port=80 --type=LoadBalancer ``` 7. 通过Service的IP地址访问部署的Nginx服务。 8. 进行弹性部署,可以通过以下命令来修改Deployment的副本数: ``` sudo kubectl scale deployment nginx --replicas=3 ``` 以上是一个简单的K8s集群搭建流程,可以根据实际需要进行适当的修改。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值