Kubernetes k8s使用Kubeadm部署流程

一.Kubernetes部署环境准备

master和node节点都需要执行

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭selinux

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

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

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

添加hosts

cat >> /etc/hosts << EOF
192.168.1.1 k8s_master
192.168.1.2 k8s_node
EOF

设置网桥参数

# 修改linux的内核采纳数,添加网桥过滤和地址转发功能
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 
#加载网桥过滤模板
modprobe br_netfilter
#查看网桥过滤模块是否加载成功
lsmod |grep br_netfilter

配置ipvs功能

[root@master ~]# yum install ipset ipvsadmin -y
#添加需要加载的模块写入脚本文件
[root@master ~]# cat <<EOF> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
3.为脚本添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules
4.执行脚本文件
[root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules
5.查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

时间同步

yum install ntpdate -y
ntpdate time.windows.com

二.Kubernetes安装具体步骤

master和node节点都安装 Docker/kubeadm/kubelet/kubectl
Kubernetes 默认容器运行环境是Docker,因此首先需要安装Docker;

安装 Docker

更新docker的yum源

yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

查看当前镜像源中支持的docker版本

yum list docker-ce --showduplicates

安装特定版本的docker-ce
必须制定–setopt=obsoletes=0,否则yum会自动安装更高版本

yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

配置加速器加速下载

启动docker

systemctl start docker.service
cat >/etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors":["https://8zt6iaba.mirror.aliyuncs.com"]
}
EOF

然后执行开机自动启动docker:

systemctl enable docker.service

那么接下来需要搭建:kubeadm、kubelet、kubectl

添加k8s的阿里云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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

安装kubeadm、kubelet和kubectl

yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y

配置kubelet的cgroup

#编辑/etc/sysconfig/kubelet, 添加下面的配置
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

设置kubelet开机自启

systemctl enable kubelet

准备集群镜像

# 在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需镜像可以通过下面命令查看

kubeadm config images list

# 下载镜像
# 此镜像kubernetes的仓库中,由于网络原因,无法连接,下面提供了一种替换方案
images=(
	kube-apiserver:v1.17.4
	kube-controller-manager:v1.17.4
	kube-scheduler:v1.17.4
	kube-proxy:v1.17.4
	pause:3.1
	etcd:3.4.3-0
	coredns:1.6.5
)

for imageName in ${images[@]};do
	docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
	docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
	docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName 
done

集群初始化

下面的操作只需要在master节点上执行即可
192.168.1.100的IP改为自己的masterIP

# 创建集群
[root@master ~]# kubeadm init --apiserver-advertise-address=192.168.1.100 --kubernetes-version=v1.17.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

在这里插入图片描述

# 创建必要文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

下面操作在node节点执行,加入master管理节点

kubeadm join 192.168.1.100:6443 --token 895tl0.dkvimb8ziy70nrdc     --discovery-token-ca-cert-hash sha256:dcbf6c2cb7104c17d3ef293777b52d01386f1e67acf9b53a96500d20bf19a8d2

如果找不到token值,使用下面命令方法重新生成链接Token

kubeadm token create --print-join-command 

在master节点查看是否加入成功 ,如图

kubectl get nodes

在这里插入图片描述

五.部署网络插件

只在master上操作
下载kube-flannel.yml文件(下载到master)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

应用kube-flannel.yml文件得到运行时容器(在master机器上执行)

kubectl apply -f kube-flannel.yml 

看到下图内容代表网络插件部署成功
在这里插入图片描述
查看是否状态为Ready

kubectl get nodes 

在这里插入图片描述
查看运行时容器pod (一个pod里面运行了多个docker容器)
查看kube系统运行的容器

kubectl get pods -n kube-system

在这里插入图片描述

k8s环境就搭建好

部署nginx服务测试

#创建一个nginx服务
kubectl create deployment nginx  --image=nginx:1.14-alpine
#暴露端口
kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort
#查看pod运行状态
kubectl get pod
#查看服务svc运行状态(svc=service)
kubectl get svc

在这里插入图片描述
通过masterIP:31511端口访问
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值