Kubernetes-1.15.0版本部署,采用kubeadm方式。

环境

系统:Centos7.4-1708

光盘源:Centos7.4-1708

master节点:192.168.199.61

node1节点:192.168.199.62

node2节点:192.168.199.63

node3节点:192.168.199.64

mysql节点:192.168.199.70

准备工作

1、【all】准备yum源,这里采用的是光盘源Centos7.4-1708

2、【all】关闭firewalld,selinux,NetworkManager

systemctl stop firewalld ; systemctl mask firewalld ; systemctl stop NetworkManager ; systemctl disable NetworkManager ; setenforce 0 ; sed -i 's/SELINUX=enfircing/SELINUX=disabled/g' /etc/selinux/config

3、【all】部署时间同步服务,同步地址为:ntp1.aliyun.com,修改系统的时区为上海,安装ntpdate,同步阿里云时间服务器

vim /etc/chrony.conf

systemctl restart chronyd

systemctl enable chronyd

timedatectl set-timezone Asia/Shanghai

ntpdate ntp1.aliyun.com

4、新建k8s的集群数据iptables规则

cat > /etc/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF

5、关闭swap分区

6、地址解析

cat >> /etc/hosts << EOF
> 192.168.199.61 ku-master
> 192.168.199.62 ku-node1
> 192.168.199.63 ku-node2
> 192.168.199.64 ku-node3
> 192.168.199.70 mysql
> EOF
 

swapoff -a

一、部署Kubernetes

1、【all】部署docker,采用的版本是docker-ce-18.06.1版本

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

yum clean all ; yum repolist

yum -y install docker-ce-18.06.1.ce-3.el7

报错:

提示container-selinux版本过低。解决的办法参考文章https://www.jianshu.com/p/24d480efe48a

这个报错是container-selinux版本低或者是没安装的原因

需要安装epel源 才能yum安装container-selinux

然后在安装docker-ce就可以了。

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum -y install epel-release #阿里云上的epel源
yum -y install container-selinux

yum -y install docker-ce-18.06.1.ce-3.el7

systemctl enable docker ; systemctl start docker

2、【all】部署kubernetes的组件:kubeadm,kubectl,kubelet。使用版本1.15.0版本

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_check=0
> gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
> EOF
yum clean all ; yum repolist

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

systemctl enable kubelet.service

3、【master】初始化master节点。

kubeadm init --apiserver-advertise-address=192.168.199.61 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

根据提示执行3条命令,保存下面红框的命令。这个命令是node节点加入集群的命令

4、【all】部署flannel组件,实现各节点间的通信

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

修改kube-flannel.yml文件

修改成为李振良老师的源即可

【all】所有节点,docker拉取flannel的组件到本地

docker pull lizhenliang/flannel:v0.11.0-amd64

【master】根据修改后的kube-flannel.yml文件,启动pod

kubectl apply -f kube-flannel.yml

查询k8s中的pod,svc情况

查看节点情况

4、【node】所有node节点,加入集群当中

kubeadm join 192.168.199.61:6443 --token owgoqb.x22rrlcaor6mt90x \
    --discovery-token-ca-cert-hash sha256:8f55e34dcafb088e94e3c2dbeaee39cdd9fa15c856676dd2fc4525fbc2132936

查询nodes情况

5、【master】部署kubernetes可视化组件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

启动pod

kubectl apply -f recommended.yaml

创建账号,绑定账号角色与admin关联,过滤出登录令牌
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
保存令牌

二、kubernetes的简单使用

1、利用控制器deployment进行pod的部署,例如部署一个nginx的pod

kubectl create deployment nginx --image=nginx     #新建pod

kubectl expose deployment nginx --port=80 --type=NodePort     #暴露端口

访问测试:http://ip:30807

2、扩容pod的副本数

kubectl scale deployment nginx --replicas=3

3、停止/删除pod

kubectl delete deployment nginx

kubectl delete service nginx

4、利用pod模板(deployment控制器方式)和service模板,自定义启动pod

kubectl create deployment nginx --image=nginx --dry-run -o yaml > deploy.yaml       #生成pod模板

vim deploy.yaml

kubectl apply -f deploy.yaml

kubectl expose deployment nginx --port=80 --type=NodePort --dry-run -o yaml > svc.yaml    #生成暴露服务的yaml文件

vim svc.yaml

kubectl apply -f svc.yaml

5、利用pod模板(利用pod容器信息)和service模板,自定义启动pod,启动一个pod,一组容器写入数据,一组容器读取数据。验证pod中共用存储。

kubectl get pod nginx-554b9c67f9-tdqns -o yaml > pod.yam

vim pod.yaml

kubectl apply -f pod.yaml

  kubectl exec -it my-pod -c write bash   #验证

kubectl exec -it my-pod -c read bash     #验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值