kubernetes-单master单node(适用于测试-开发)

花门楼前见秋草,岂能贫贱相看老。这篇文章主要讲述kubernetes-单master单node(适用于测试-开发)相关的知识,希望能为你提供帮助。
1、概述    在kubernetes生态环境中,一般情况会使用单master单node这种架构,都是在测试环境、开发环境中使用,并且为了方便部署会使用kubeadm工具。那么在master节点需要部署以下组件:ectd、kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、calico、coredns;在node节点需要部署以下组件:coredns、kube-proxy、calico。特别注意coredns在没有部署calico网络插件之前都会是pending状态,calico网络插件需要单独部署,其他组件在kubeadm init初始化时自动安装。kuber组件基础知识可以看:??kubernetes集群二进制部署??


2、环境基础搭建中基础配置文件地址:
链接:https://pan.baidu.com/s/1rMhRk7mVqfG_2-747NQ_0w
提取码:gEt5
--来自百度网盘超级会员V5的分享
两台服务器配置:centos79 4VCPU8G 
两台服务器都需要进行以下基本操作:
配置hosts

192.168.2.70 master01
192.168.2.71 node01

关闭selinnx
vim /etc/selinux/config
SELINUX=disabled

关闭防火墙
systemctl stop firewalld ; systemctl disable firewalld

修改内核参数
cat > /etc/sysctl.d/k8s.conf < < EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl -p /etc/sysctl.d/k8s.conf

配置阿里云docker的YUM源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

部署docker服务
yum install -y docker

启动docker
systemctl start docker
systemctl enable

配置docker国内镜像源
more /etc/docker/daemon.json

"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"]

重新加载docker配置
systemctl daemon-reload
systemctl start docker

开启ipvs,实现传输层负载均衡
more /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"
for kernel_module in $ipvs_modules; do
/sbin/modinfo -F filename $kernel_module > /dev/null 2> & 1
if [ 0 -eq 0 ]; then
/sbin/modprobe $kernel_module
fi
done

加载配置
chmod 755 /etc/sysconfig/modules/ipvs.modules & & bash /etc/sysconfig/modules/ipvs.modules & & lsmod | grep ip_vs



3、kubernetes环境配置安装k8s组件需要的阿里云的repo源
vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

安装基础包
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnetipvsadm

安装kubernetes需要的软件包
yum install kubelet kubeadm kubectl -y

kubeadm:用来初始化kubernetes集群
kubelet:用户启动pod
kubectl:部署和管理应用,增删改查各种组件
启动kubelet服务
systemctl enable kubelet
systemctl start kubelet

以上操作两台服务器都需要进行
以下在master节点进行操作
因为在YUM安装服务时,没有进行版本指定,所以优先查看kubelet版本
kubectl version


这个版本号在执行初始化的时候用得上
kubernetes执行初始化
kubeadm init --kubernetes-version=1.23.5 --apiserveadvertise-address=192.168.2.70 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=SystemVerification

--kubernetes-version:版本号
--apiserveadvertise-address:master节点IP
--image-repository:手动指定仓库
--pod-network-cidr:pod地址段
加载一些基础配置
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

以上操作master节点基础配置已经完成
在node节点执行
kubeadm join 192.168.2.70:6443 --token mg9i17.hl4akrvlwpkkxfb5--discovery-token-ca-cert-hash sha256:129d4be984414d427a54f47187590756c51c960dbed34fcc9ec4ed89217f455f

在node节点执行的命令根据自己搭建的实际情况处理,在kubeadm init初始化最后会打印出这个命令
以上部署下来,目前为止,那个网络组件还是没有解决的,在master节点执行如下:
kubectlapply -f calico.yaml

查看集群状态
kubectl get nodes


kubectl get pods -n kube-system -o wide


查看所要的docker镜像
[root@master01 ~]# docker images


[root@node01 ~]# docker images

【kubernetes-单master单node(适用于测试-开发)】

    推荐阅读