Kubeadm快速安装 Kubernetes集群

实验环境:

1. 安装部署docker环境

2. 部署Kubernetes集群(在三个节点上执行以下命令)

(1. )配置三台主机的主机名

主机1

[root@localhost ~]# hostnamectl set-hostname  k8s-master

[root@localhost ~]# bash

  主机2

[root@localhost ~]# hostnamectl set-hostname k8s-node01

[root@localhost ~]# bash

  主机三

[root@localhost ~]# hostnamectl set-hostname k8s-node02

[root@localhost ~]# bash

(2. )修改hosts文件

 [root@k8s-master ~]# vim /etc/hosts

192.168.10.101 k8s-master

192.168.10.102 k8s-node01

192.168.10.103 k8s-node02

(3.)关闭交换分区

 [root@k8s-master ~]# free  -h     //查看交换分区

 [root@k8s-master ~]# vim /etc/fstab

#/dev/mapper/centos-swap swap swap defaults 0 0 //将本行内容注释

(4.)配置Kubernetes的yum源

cat

/etc/yum.repos.d/kubernetes.repo [kubernetes]

name=Kubernetes baseurl=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

[root@k8s-master ~]# yum clean all

(5.)安装kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

[root@k8s-master ~]# yum -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

(6.)kubelet设置开机启动

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

(7.)生成初始化配置文件

[root@k8s-master ~]# kubeadm config print init-defaults >init-config.yaml

(8.)修改初始化配置文件(以下操作取消三台主机同步,在master节点操作)

[root@k8s-master ~]# vim init-config.yaml

修改一下内容

advertiseAddress: 192.168.10.101

name: k8s-master

imageRepository: registry.aliyuncs.com/google_containers

podSubnet: 10.244.0.0/16

(9.)拉去所需镜像

方法一:在线拉取

[root@k8s-master ~]# kubeadm config images list --config init-config.yaml //列出所需镜像列表

[root@k8s-master ~]# kubeadm config images pull --config init-config.yaml //在线拉取镜像到本地(由于在线拉取,速度可能较慢)

方法二:本地导入

如果已经有离线镜像,可直接导入

(10) 初始化 k8s-master

[root@k8s-master ~]# kubeadm init --config=init-config.yaml

注意:执行完该命令一定要记下最后生成的token: kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:fee9e6c2c7eef080874f74a889ec17bfec099b970a437c606d049eb48eb0ea7e

注意:如果要重复初始化,先重置kubeadm

[root@k8s-master ~]# kubeadm reset

(11) 复制配置文件到用户的home目录(以下命令会在执行(10)初始化k8s-master时生成)

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

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

[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

[root@k8s-master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf

(12)node节点加入集群

复制以下内容在102.103主机执行

kubeadm join 192.168.10.101:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:fee9e6c2c7eef080874f74a889ec17bfec099b970a437c606d049eb48eb0ea7e

(13)在master查看节点

[root@k8s-master ~]# kubectl get nodes         //查看节点信息

NAME STATUS ROLES AGE VERSION

k8s-master NotReady control-plane,master 32m v1.23.0

k8s-node01 NotReady 31m v1.23.0

k8s-node02 NotReady 31m v1.23.0

[root@k8s-master ~]# kubectl get pod -A         //查看pod状态

NAMESPACE NAME READY STATUS RESTARTS AGE

kube-system calico-kube-controllers-64cc74d646-k4zh7 1/1 Running 0 42s

kube-system calico-node-7l74s 1/1 Running 0 42s

kube-system calico-node-vgfkf 1/1 Running 0 42s

kube-system calico-node-x9fc4 1/1 Running 0 42s

kube-system coredns-6d8c4cb4d-fcdpg 1/1 Running 0 32m

kube-system coredns-6d8c4cb4d-x698z 1/1 Running 0 32m

kube-system etcd-k8s-master 1/1 Running 0 32m

kube-system kube-apiserver-k8s-master 1/1 Running 0 32m

kube-system kube-controller-manager-k8s-master 1/1 Running 0 32m

kube-system kube-proxy-6hgml 1/1 Running 0 31m

kube-system kube-proxy-jfp29 1/1 Running 0 32m

kube-system kube-proxy-kpb2p 1/1 Running 0 32m

kube-system kube-scheduler-k8s-master 1/1 Running 0 32m

基本的k8s环境到此布已经部署完毕

以下是对k8s的进一步优化

(14) 部署Calico网络插件

这里是提前下载好的calica的资源,拉入虚拟机根目录便可以直接部署

[root@k8s-master ~]# kubectl apply -f calico.yaml

[root@k8s-master ~]# kubectl get nodes //查看节点信息

k8s-master Ready control-plane,master 32m v1.23.0

k8s-node01 Ready 31m v1.23.0

k8s-node02 Ready 31m v1.23.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值