安装k8s集群

一、前置环境配置

安装两台centos

实验环境,一台pc配有docker环境,有两个centsos7容器,其中一个容器作为master,一个作为node。如果master与node都是用默认端口,会存在冲突,所以在此基础上做细微的调整。

master端口:

服务名 宿主机端口 docker内端口
API Server 6443 6443
etcd 2379,2380 2379,2380
Controller Manager 10252 10252
scheduler 10251 10251
Kubelet 10250 10250
container runtime 2375 2375
NodePort 3000-3267 3000-3267

NodePort由k8s自由分配,我们不用处理。

node端口:

服务名 宿主机端口 docker内端口
API Server 5443 5443
etcd 1379,1380 1379,1380
Controller Manager 9252 9252
scheduler 9251 9251
Kubelet 9250 9250
container runtime 1375 1375
NodePort 5000-5267 3000-3267

NodePort由k8s自由分配,我们不用处理。

运行master 容器

docker run --name k8s-master --hostname k8s-master  --privileged=true -p 6643:6643 -p 2379:2379 -p 2380:2380 -p 10252:10252 -p 10251:10251 -p 10250:10250 -p 2375:2375 -p 3000-3267:3000-3267 -v /var/run/docker.sock:/var/run/docker.sock  -d  centos:centos7 /usr/sbin/init

systemctl start docker
systemctl enable docker

运行node容器

docker run --name k8s-node --hostname k8s-node  --privileged=true -p 5643:6643 -p 1379:2379 -p 1380:2380 -p 9252:10252 -p 9251:10251 -p 9250:10250 -p 1375:2375 -p 5000-5267:3000-3267 -v /var/run/docker.sock:/var/run/docker.sock -d  centos:centos7 /usr/sbin/init

systemctl start docker
systemctl enable docker

关闭防火墙

centos7容器默认不带防火墙,真机的话需要关闭一下。

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

centos7容器默认不带selinux,真机的话需要关闭一下。

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

关闭swap(k8s禁止虚拟内存以提高性能)

swapoff -a 临时关闭
sed -ri 's/.*.swap.*/#&' /etc/fstab #永久关闭

在master添加hosts

master与node在同一台宿主机上,外部ip相同都是宿主机的ip,这里使用宿主机的不同端口来区分master容器和node容器,这里就不用配置hosts了。真机的话需要配置一下。

cat >> /etc/hosts << EOF
192.168.172.131 k8smaster
192.168.172.132 k8snode
EOF

设置网桥参数

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

时间同步

yum install ntpdate -y
ntpdate time.windows.com

二、kubeadm安装

master,node都需要安装docker、kubelet、kubeadmin。
配置docker在yum中的国内镜像源:

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

安装docker

yum install docker-ce-19.03.13 -y

/etc/docker/daemon.json 配置docker国内加速器

vim /etc/docker/daemon.json 

{
	"registry-mirrors": ["https://registry.docker-cn.com"]
}
systemctl enable docker.service

安装k8s组件

添加k8s组件 kubelet,kubeadmin,kubectl的阿里云源

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

[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 install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
systemctl enable kubelet.service

测试k8s组件是否都安装成功

yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl

master节点初始化

kubeadm init --image-repository \ 
registry.aliyuncs.com/google_containers \ 
--kubernetes-version=v1.20.6 \ 
--pod-network-cidr=10.244.0.0/16 \ 
--apiserver-advertise-address=192.168.11.109 \
--cri-socket unix:///var/run/cri-dockerd.sock

你可能感兴趣的:(kubernetes,容器,云原生)