k8s v1.9.6 超详细搭建步骤
部署说明
k8s新的版本与之前1.5的部署方式发生改变,官方将kubernetes大组件中的服务例如(kube-proxy、kube-api等服务)剥离出来封装成容器的形式来简化部署的方式。以下为三个必装的服务:
kubelet :运行在 Cluster 所有节点上,主要负责启动 Pod 和容器。
kubeadm :用于初始化和引导Cluster(是官方推出快速部署k8s集群,其本 质是将k8s的相关服务容器化)
kubectl :是 Kubernetes 命令行工具与api交互。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件
部署环境
角色 IP 服务
ka8-master 10.0.0.120 kubeadm-1.9.6-0,kubectl-1.9.6-0,docker-ce-17-03.0,kubelet-1.9.6-0
k8s-node 10.0.0.121 kubelet-1.9.6-0,
注意:两台机器的时间一定要一致,并且docker-ce的版本不能大于17.03,docker可以使用官方的源进行安装,安装的时候指定需要安装的版本,或者使用rpm包安装即可。
k8s需要用到的镜像已经打包好上传到云盘:
链接: https://pan.baidu.com/s/1CVuCwX3Fl-VcUxftXPEN1g 密码: 56a3
安装配置
系统环境:centos7.3
1、替换源,因为按照官方的方式在国内安装,会导致安装失败(被墙)
配置位置 Master node
1)配置准备
关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
关闭swap
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
关闭selinux
setenforce 0
添加kubernetes源
cat:
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
2)安装docker-ce并导入镜像
配置位置 Master node
##安装docker-ce:
$rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
$rpm -ivh docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
##启动docker-ce
$systemctl start docker
$systemctl enable docker
##解压下载的镜像包:
$tar -jvxf k8s-1.9.6-images.tar.bz2
$cd k8s-1.9.6-images
##导入所需要的镜像包:
$docker load <etcd-amd64_3.1.11.tar
$docker load < flannel_v0.10.0-amd64.tar
$docker load < k8s-dns-dnsmasq-nanny-amd64_v1.14.7.tar
$docker load < k8s-dns-kube-dns-amd64_1.14.7.tar
$docker load < k8s-dns-sidecar-amd64_1.14.7.tar
$docker load < kube-apiserver-amd64_v1.9.6.tar
$docker load < kube-controller-manager-amd64_v1.9.6.tar
$docker load < kube-proxy-amd64_v1.9.6.tar
$docker load < kubernetes-dashboard-amd64_v1.8.3.tar
$docker load < kube-scheduler-amd64_v1.9.6.tar
$docker load < pause-amd64_3.0.tar
3)安装k8s
配置位置 Master node
1、修改参数
##修改内核两个参数(这两个是参数是防止应用部署在centos系统情况下由于iptables被绕过而导致的路由错误)
简单的说就是使流过网桥的流量也进入iptables/netfilter框架中:
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
2、安装组件
yum install -y kubelet-1.9.6-0 kubectl-1.9.6-0 kubeadm-1.9.6-0
#确保kubelets使用的cgroup-driver和docker使用的cgroup-driver一样:
sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
3、启动kubelet服务:
systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet
4)集群初始化:
配置位置 Master
kubeadm init --apiserver-advertise-address 192.168.100.135 --pod-network-cidr=10.244.0.0/16
--apiserver-advertise-address
指明用Master的哪个interface与Cluster 的其他节点通信
–pod-network-cidr
指定Pod网络的范围k8s支持多种网络方案不同的网络方案对这个配置有不同的要求,这里设置为 10.244.0.0/16是因为我们将使用flanne 网络方案,所以设置成这个 CIDR。
5)root用户还不能使用kubelet控制集群,需要配置下环境变量:
##对于非root用户:
$mkdir -p $HOME/.kube
$cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$chown $(id -u):$(id -g) $HOME/.kube/config
##对于root用户:
$echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
$source ~/.bash_profile
##测试下:
$kubectl version
6)部署pod网络
配置位置 Master
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Node节点上执行如下加入:
kubeadm join --token 0428e2.35a3db294493bfdb 192.168.100.135:6443 --discovery-token-ca-cert-hash sha256:d598c1b5229bc1e3b118bed424a5f369cbbb61c03072dcd126f209ca7b5efbba
kubeadm token list
这里的token为我们在maste初始化时候给出的token,若是忘记或者关闭了master窗口没记录下来可以在master上执行如下来获取token加入
7)kubernetes-dashboard部署
配置位置 Master
给master主机设置一个label用来后面部署dashborad的时候指定部署到master主机上,防止部署到node节点上
kubectl label nodes k8s-master master=node1
用于部署kubernetes-dashboard的yaml文件也在刚刚下载的压缩包里面,所以一样进入k8s-1.9.6-images目录
kubectl create -f kubernetes-dashboard.yaml
注意:设置label是因为我修改了kubernetes-dashboard.yaml,防止部署到node节点上去,到时候还得修改其他配置,麻烦
(-_-),压缩包中的该配置文件我已经改成如下,若不想(aojiao)设置label和上面的一样,需要自行修改。
本文转自CSDN-k8s v1.9.6 超详细搭建步骤
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
搭建及使用K8s集群
k8s Dns 部署 k8s dns 相关镜 像准备 修改配置文件 1 修改各个node上的kubelet 2 修改APIserver yamls 编写 1 skydns-rcyml 2 skydns-svcyaml 创建pods 验证k8s dns 1 部署busybox 2 nslookup 验证 1. k8s dns 相关镜像准备 2. yamls 编写 3. 创建pod service 4. 验证k8s dns docker 容器的ip 是动态的,多个服务之间没法通讯,k8s dns 解决了该问题,访问不通过ip,通过app name 进行访问。 1. k8s dns 相关镜像准备 百度一把 文章都是google的镜像,国内pull不下来,可以去dockerhub上搜到的对应版本,tag & push到个人的dockerhub下 镜像 版本 docker.io/cdchen/etcd 2.0.9 docker.io/cdchen/kube2sky 1.11 docker.io/cdchen/skydns 2015-03-11-001 2. 修改配置文件 2.1 修改各个...
- 下一篇
(Kubernetes)k8s和docker的关系
Kubernetes 是一个自动化部署、伸缩和操作应用程序容器的开源平台。 使用 Kubernetes,你可以快速、高效地满足用户以下的需求: 快速精准地部署应用程序 即时伸缩你的应用程序 无缝展现新特征 限制硬件用量仅为所需资源 我们的目标是培育一个工具和组件的生态系统,以减缓在公有云或私有云中运行的 程序的压力。 Kubernetes 的优势 可移动: 公有云、私有云、混合云、多态云 可扩展: 模块化、插件化、可挂载、可组合 自修复: 自动部署、自动重启、自动复制、自动伸缩 Google 公司于 2014 年启动了 Kubernetes 项目。Kubernetes 是在 Google 的长达 15 年的成规模的产品级任务的经验下构建的,结合了来自社区的最佳创意和实践经验。 容器优势总结: 敏捷的应用创建与部署:相比虚拟机镜像,容器镜像的创建更简便、更高效。 持续的开发、集成,以及部署:在快速回滚下提供可靠、高频的容器镜像编译和部署(基于镜像的不可变性)。 开发与运营的关注点分离:由于容器镜像是在编译/发布期创建的,因此整个过程与基础架构解耦。 跨开发、测试、产品阶段的环境稳定性:在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案