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

Posted DonotCTR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 telnet  ipvsadm

安装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-单master单node(适用于测试-开发)_docker

这个版本号在执行初始化的时候用得上

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节点执行如下:

kubectl  apply -f calico.yaml

查看集群状态

kubectl get nodes

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

kubectl get pods -n kube-system -o wide

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

查看所要的docker镜像

[root@master01 ~]# docker images

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

[root@node01 ~]# docker images

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

以上是关于kubernetes-单master单node(适用于测试-开发)的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes二进制部署 单节点master

Kubernetes二进制部署 单节点master

Kubernetes节点服务搭建————二进制部署|单master节点配置(master组件部署|node组件部署)

Kubernetes节点服务搭建————二进制部署|单master节点配置(master组件部署|node组件部署)

Kubernetes节点服务搭建————二进制部署|单master节点配置(master组件部署|node组件部署)

Kubernetes(k8s)单Matser集群架构的搭建(v1.20)