Kubernetes学习篇---构建K8S集群


一、准备工作

阿里云服务器配置如下:

  • xshell远程访问工具
  • CPU和内存:2核4G 2台
  • 操作系统:Centos7.8 64位
  • 需要访问公网下载docker和k8s镜像,带宽值2M。

实例图片

二、安装Docker

1.用xshell登录服务器

xshell登录

2.关闭安全配置

vi /etc/selinux/config

关闭安全配置

3.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

4.关闭swap交换分区

#临时关闭swap
swapoff -a

或者

#永久关闭swap
vi /etc/fstab

关闭swap

5.安装Docker

(1)安装依赖包

  sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

(2)配置docker仓库镜像源

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

(3)安装Docker

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

(4)Docker自启动

  systemctl enable docker
  systemctl start docker

(5)查看docker是否安装成功

  docker -v

安装docker成功
(6)配置阿里云镜像加速器和docker的cgroupdriver类型

#cgroupdriver类型设置为systemd是为了和k8s保持一致
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://pmp7i8xs.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
#重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

三、安装K8S集群

1.配置k8s仓库源

cat > /etc/yum.repos.d/kubrenetes.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

2.安装kubeadm、kubelet和kubectl

yum install -y kubeadm  kubelet  kubectl

3.配置kubelet启动

systemctl enable kubelet
systemctl start kubelet

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

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system            #使配置生效
systemctl status kubelet   #查看kubelet状态

查看kubelet状态

5.安装网络插件

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

注:以上第二步、第三步需在master节点和node节点均进行操作。


四、K8S集群—master节点

1.初始化master节点

 #IP地址请根据实际情况修改
 kubeadm init \
    --apiserver-advertise-address=172.19.98.25 \  
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.22.0 \
    --service-cidr=10.1.0.0/16  \
    --pod-network-cidr=10.244.0.0/16

初始化master节点
注:初始化master节点过程中有可能出现失败的情况,可查看k8s所需的镜像。如果docker无法下载这些k8s镜像,可通过docker tag命令将docker中已有镜像修改为可使用的镜像。
可能用到的命令如下(举例):

#查看K8S所需镜像
kubeadm config images list  
#查看docker镜像   
docker images                
#修改镜像
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.22.0  k8s.gcr.io/kube-apiserver:v1.22.0   
#下载镜像
docker pull registry.aliyuncs.com/google_containers/coredns:1.8.4

镜像列表

2.K8S集群配置

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

#配置环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

#使配置生效
source ~/.bash_profile

3.查看集群中master

kubectl get nodes 

nodes
Ready为正常。
(1)如果出现No ready,一般情况需要检查kubelet的状态,可通过systemctl start kubelet.service开启服务。
(2)或者有时也需要重启docker,可根据实际情况操作。

五、K8S集群—node1节点加入master集群

1.在master节点上拿到加入集群的命令

kubeadm token create --print-join-command

join命令

2.在node1节点执行加入集群命令

#根据实际情况生成的token加入master节点
kubeadm join 172.19.98.25:6443 --token tyuqbj.08ysq95yi0vsj2ag --discovery-token-ca-cert-hash sha256:7dcce876670f4f5e600efcf7862173fa78f2e7c6b7638fdcb7d835db8e776893

node节点加入master

3.在mater节点上查看集群nodes

kubectl get nodes

nodes-list
Ready为正常。
(1)如果出现No ready,一般情况需要检查kubelet的状态,可通过systemctl start kubelet.service开启服务。
(2)或者有时也需要重启docker,可根据实际情况操作。

4.重置一个节点为初始状态***

如果节点配置错误,无论是master还是node1,都可以重置为初始状态。
(请根据实际情况操作)

kubeadm reset
rm -rf $HOME/.kube
rm -rf /var/lib/etcd
rm -rf /etc/kubernetes/manifests
rm -rf /etc/cni/net.d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值