Kubernetes搭建单节点

Kubernetes搭建单节点

   张吉吉     2020年8月6日 00:59     1684    

1、系统

本次搭建使用三个服务器,一个kubernetes master节点,两个工作节点。

设备的要求,最好是两核CPU,和4G内存。

 

2、修改主机名

kubernetes master和工作节点都要进行修改

主节点,这里命名kuber-master,名称随意起

hostnamectl set-hostname kuber-master

工作节点

hostnamectl set-hostname kuber-work1

hostnamectl set-hostname kuber-work2

修改/etc/hosts文件

下边的hostname修改为上边对应的主机名称

127.0.0.1 hostname

 

3、安装docker,在master和worker节点都执行

移除旧版本

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

安装必要的工具

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

获取安装源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum的缓存

sudo yum makecache fast

安装docker

sudo yum -y install docker-ce

启动docker

sudo systemctl start docker

测试docker

docker run hello-world

 

关闭一些服务

systemctl stop firewalld

开机关闭systemctl disable firewalld

setenforce 0

临时关闭,如果要永久关闭在/etc/selinux/config中进行修改

swapoff –a

在/etc/fstab中注释swap分区

 

4、修改内核参数,在master和worker节点都执行

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf

echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf

echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf

echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf

echo "net.ipv6.conf.all.forwarding = 1"  >> /etc/sysctl.conf

 

5、配置yum仓库,并安装,在master和worker节点都执行

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF


yum remove -y kubelet kubeadm kubectl

yum install -y kubelet kubeadm kubectl

如果要安装指定的版本

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

systemctl enable kubelet.service

 

6、初始化kubernetes master,只在master节点执行

kubeadm init

--kubernetes-version=1.18.0

--apiserver-advertise-address=192.168.0.226

--image-repository registry.aliyuncs.com/google_containers

--service-cidr=10.10.0.0/16

--pod-network-cidr=10.122.0.0/16

POD的网段为: 10.122.0.0/16, api server地址就是master本机IP。

这一步很关键,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过–image-repository指定阿里云镜像仓库地址。

下边生成的信息一定要记录好

1.png

执行下边指令

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf


查看节点,pod

kubectl get pod --all-namespaces

2.png

node节点为NotReady,因为corednspod没有启动,缺少网络pod


安装calico网络

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

安装完成后查看kubectl get pod --all-namespaces

3.png

 

7、初始化work节点

如果忘记了上边的join信息可以使用

kubeadm token create --print-join-command 获取

然后将生成的

kubeadm join 192.168.0.226:6443 --token k52uso.a80zfdr0be2pa9g6     --discovery-token-ca-cert-hash sha256:e30b0ecfd34c4f3a1691d775c74ed2c143ba9d097b76b01f02cd5b39f4e7c4e2在每个工作节点执行。

4.png

至此执行完毕。


文章评论

0

其他文章