Kubernetes学习记录(二):使用kubeadm快速部署一个单master集群

1. 配置要求

至少三台虚拟机,一个master两个node

硬件配置:2GBRAM,2个CPU,30GB磁盘

操作系统:centos 7.x

禁止swap分区

可以访问外网,网络互通

 

角色 IP
k8s-master  192.168.241.133
k8s-node1  192.168.241.132
k8s-node2  192.168.241.131

 

 

2. 配置步骤

########################在所有节点上执行#####################################

(1)关闭防火墙

systemctl stop firewalld
systemctl disable firewalld #永久

 

(2)关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时

 

(3)关闭swap

swapoff -a #临时
vim /etc/fstab # 永久,注释掉swap的开机启动

 

(4)设置主机名

hostnamectl set-hostname <hostname>

 

#####################################################################

 

(5)在master节点中添加hosts

cat >> etc/hosts << EOF
192.168.31.61 k8s-master
192.168.31.62 k8s-node1
192.168.31.63 k8s-node2
EOF

 

(6)修改master节点的网络配置

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

 

(7)配置生效

sysctl --system

 

#################以下在所有节点上执行##########################

(8)同步时钟

ntpdate time.windows.com

 

(9)安装docker,并修改镜像源,然后重启docker服务就好了

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
systemctl enable docker && systemctl start docker
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors":["https://dr0fajwf.mirror.aliyuncs.com"]}
EOF
systemctl restart docker
 

 

(10)修改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

 

(11)安装kubelet kubeadm kubectl

yum install -y kubelet kubeadm kubectl

 

默认最新版,可以指定版本

##################################################################

 

(12)初始化k8s集群

kubeadm init >   --apiserver-advertise-address=192.168.241.133 >   --image-repository registry.aliyuncs.com/google_containers >   --kubernetes-version v1.23.5 >   --service-cidr=10.96.0.0/12 >   --pod-network-cidr=10.244.0.0/16

 

(13)成功后看到提示信息,需要拷贝三个东西,还有提示如何让node加入集群中

 

(14)查看node状态,可能是NotReady,需要下载一个yml文件

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

 

 

(15)如果有需要的话可以安装bashboard

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

 

下载完成后打开,修改Service,暴露端口

 

然后应用这个yaml文件就可以

kubectl apply -f recommended.yaml

 

(16)访问bashboard

访问方式见 安装Kubernetes Dashboard | Kuboard

 

(17)测试

最后通过以下几个指令查看一下集群的状态:

 

尝试部署一个nginx

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

 

查看nginx的信息,使用浏览器访问

 

 

kubectl进入pod的指令和docker进入容器的指令差不多,bash前面不用加 -- 也可以,不过会提示说将来版本会弃用完全像docker的这种写法

 

3. k8s集群初始化流程

  1. 检查系统环境是否满足,例如swap是否关闭、配置是否满足等
  2. 下载所需镜像,kubeadm config images pull
  3. 为kubelet创建配置文件并启动
  4. 为apiserver、etcd生成https证书
  5. 生成连接apiserver的kubeconfig文件
  6. 容器启动master组件
  7. 将涉及的配置文件存储到configmap
  8. 设置master节点不可调度pod
  9. 启用bootstrap自动为kubelet颁发证书
  10. 安装插件coreDNS、kube-proxy

 

posted @ 2022-04-06 15:10  aganippe  阅读(67)  评论(0编辑  收藏  举报