k8s是一款辅助管理容器的平台,负责容器的部署,扩缩容和负载均衡。
k8s集群是有master节点和work节点组成,master(一个)是主节点,负责管理和控制。
work是工作节点(很多),负责具体的内容。
![](https://img-blog.csdnimg.cn/5e1effedc9314697bff4a607c62d6200.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_20,color_FFFFFF,t_70,g_se,x_16)
1,环境准备
使用docker 18.09.9和kubelet-1.16.4
1.1 关闭selinux
查看selinux是否关闭
![](https://img-blog.csdnimg.cn/631524d0f0ce4667bc498d7e28a35d4d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_13,color_FFFFFF,t_70,g_se,x_16)
设置临时关闭
![](https://img-blog.csdnimg.cn/0cb7aa273589469099dc5afafd33ab19.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_13,color_FFFFFF,t_70,g_se,x_16)
1.2 关闭swap (k8s禁止虚拟内存以提高性能)
k8s要求系统关闭,否则安装过程出错
查看系统是否关闭了swap
![](https://img-blog.csdnimg.cn/b2cbe80b06f345d1a4779eb954ac7ceb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
临时禁用:swapoff -a
![](https://img-blog.csdnimg.cn/428c82e5926b41e1bce71394c6051504.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
1.3 配置ip_forward转发
ip_forward配置文件当前内容为0,表示禁止数据包转发,将其修改为1,表示允许
echo "1" > /proc/sys/net/ipv4/ip_forward
1.4 更新yum源
为了一次性配置好下载源,我们一次性修改好centos7软件源,docker源,k8s源
![](https://img-blog.csdnimg.cn/b32a1c789f2849ff8da7652a22c279e9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
下载centos7的源和docker源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
![](https://img-blog.csdnimg.cn/87e2a7365bba4b7a8d530a9cfc4c6a58.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
配置k8s源
cat <<EOF > /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
EOF
![](https://img-blog.csdnimg.cn/1b0665e0b59441929707240746d7fcbb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
刷新yum缓存
![](https://img-blog.csdnimg.cn/22a90e34cc0a48b3bae08942585d01fe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
1.5 安装docker
docker使用版本 18.09.9
![](https://img-blog.csdnimg.cn/cab8f8b3a1b844d8b6a7c4ec0e7d9e23.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
k8s运行要求docker的--cgroup-driver=systemd
vi /etc/docker/daemon.json
{"registry-mirrors": ["https://v16stybc.mirror.aliyuncs.com"],"exec-opts":["native.cgroupdriver=systemd"]}
![](https://img-blog.csdnimg.cn/51e02f439fe8477d97fb750e38ea790d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
启动docker并设置开机启动
systemctl enable docker && systemctl start docker
![](https://img-blog.csdnimg.cn/38a522d776834cb09c40701e452138aa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
1.6 安装k8s组件
yum install -y kubelet-1.16.4 kubeadm-1.16.4 kubectl-1.16.4
![](https://img-blog.csdnimg.cn/0d6937509bab472b871f8702d5b0fab8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/881b73200bef43fca775048f303386ec.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
设置开机启动:systemctl enable kubelet && systemctl start kubelet
![](https://img-blog.csdnimg.cn/e5238ca44be94b5a8dbacd075c764265.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
添加kubectl上下文到环境中
echo "source <(kubectl completion bash)" >> ~/.bash_profile
source .bash_profile
![](https://img-blog.csdnimg.cn/4ec453d3f8e74ca68821280cee5d91db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
至此,环境准备工作完毕
2, master节点配置
2.1 master节点初始化
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.4 --pod-network-cidr=10.244.0.0/16
![](https://img-blog.csdnimg.cn/3543caa7320e4e539dae4804dfef3a50.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
出现这一步,成功了一大半。
接下来按提示执行操作
![](https://img-blog.csdnimg.cn/0a9d9a2ece0d410f9e10e37be48d8c33.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
2.2 部署网络插件 (为每个使用 Kubernetes 的机器提供一个子网)
下载kube-flannel.yml文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
应用kube-flannel.yml文件得到运行时容器
kubectl apply -f kube-flannel.yml
![](https://img-blog.csdnimg.cn/c33f485697104ecb8493c49f41f49e19.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_16,color_FFFFFF,t_70,g_se,x_16)
2.3 查看k8s集群
![](https://img-blog.csdnimg.cn/fbd123e702f741139a761de92597bcbe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_14,color_FFFFFF,t_70,g_se,x_16)
3, work节点配置
3.1 master节点(/etc/kubernetes/admin.conf)的配置复制到work节点
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
3.2 设置机器名
设置机器名 work1
![](https://img-blog.csdnimg.cn/13c78b7b547542b1ba3195a4138c02ed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_15,color_FFFFFF,t_70,g_se,x_16)
配置对应的ip
![](https://img-blog.csdnimg.cn/dd4771517efc4b4e8ad5320e5cd3875e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
3.3 加入集群
在要加入的work节点上,执行master初始化时候的join语句,
![](https://img-blog.csdnimg.cn/ecf9d6de34d04185af78d37b67dc8791.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_17,color_FFFFFF,t_70,g_se,x_16)
如果令牌过期就重置
回到mster节点再看集群
![](https://img-blog.csdnimg.cn/15ea786a743f4024a702b8d7b525c228.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWVjku6PnoIHmlLnlj5jkuJbnlYw=,size_14,color_FFFFFF,t_70,g_se,x_16)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)