如何在CentOS 7 / RHEL 7上安装Kubernetes(k8s)1.7
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。Kubernetes源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在Google ...
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。
在Kubernetes设置中,有一个主节点和多个工作节点, 集群节点称为工作节点或Minion。 在主节点上,使用“ kubeadm”和“ kubectl”命令管理集群及其节点。
可以使用以下方法安装和部署Kubernetes:
Minikube:单节点kubernetes集群
Kops:将多节点kubernetes设置到AWS中
Kubeadm:生产环境中的多节点集群
在本文中,将使用kubeadm在CentOS 7 / RHEL 7上安装最新版本的Kubernetes 1.7。 如安装的三台CentOS 7服务器。 一台服务器将充当主节点 (Master Node),其余两台服务器将成为工作节点 (Work Node)。
主节点上,将安装以下组件
API Server :通过http 协议 提供kubernetes API 服务,API对象的状态存储在etcd中
Scheduler调度程序:主节点上的程序,根据资源的可用性执行调度任务,例如在工作节点上启动容器
Controller Manager 控制器管理器:监视复制控制器 (replication controller)并创建Pod以维持所期望的状态
etcd :键值对数据库,存储集群的配置数据和集群状态。
Kubectl:命令行实用程序,可通过端口6443连接到API Server,可以用来创建容器,服务等
工作节点上,将安装以下组件
Kubelet :每个工作节点上运行的代理,连接到docker,并负责创建,启动,删除容器
Kube-Proxy :根据请求的IP地址和端口号将流量路由到适当的容器。 可认为Kube-Proxy:用于端口转换
Pod :Pod可定义为部署在工作节点或Docker主机上的一组容器
CentOS 7 / RHEL 7上安装Kubernetes 1.7的步骤
在主节点上执行以下步骤
步骤1:停用SELinux并设置防火墙规则
使用以下命令登录到kubernetes主节点禁用selinux
~]# setenforce 0
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
设置以下防火墙规则
注意:如果没有设置dns服务器,在主节点和工作节点上更新/ etc / hosts文件,如下所示:
使用“ swapoff -a”命令禁用所有节点的SWAP 交换
步骤2:配置Kubernetes存储库
Kubernetes Packages在默认的CentOS 7和RHEL 7存储库中不可用,使用以下命令配置其软件包存储库。在本示例中,配置使用阿里云上的安装包;
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
步骤3:安装Kubeadm和Docker
配置Kubernetes存储库后,运行下面的命令来安装kubeadm和docker软件包
yum install kubeadm docker -y
启动并启用Kubectl和Docker服务
systemctl restart docker && systemctl enable docker
systemctl restart kubelet && systemctl enable kubelet
步骤4:使用“ kubeadm init”初始化Kubernetes Master
运行下面的命令以初始化和设置kubernetes master
kubeadm init
上面命令的输出将如下所示:
正如我们在输出中看到的那样,kubernetes master已成功初始化。 执行以下命令以Root用户使用该群集:
步骤5:将pod网络部署到集群
尝试运行以下命令以获取集群和Pod的状态:
要使集群状态和kube-dns状态为运行状态,需要部署Pod网络,以使不同主机的容器相互通信。 在本示例中,部署POD网络为 Overlay Network 。
运行下面的命令来部署网络:
export kubever=$(kubectl version | base64 | tr -d '\n')
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
serviceaccount "weave-net" created
clusterrole "weave-net" created
clusterrolebinding "weave-net" created
daemonset "weave-net" created
现在运行以下命令以验证状态
工作节点上执行以下步骤
步骤1:禁用SELinux并在工作节点上配置防火墙规则
使用以下命令登录到kubernetes工作节点禁用selinux
~]# setenforce 0
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
步骤2:在工作节点上配置Kubernetes存储库
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
步骤3:安装Kubeadm和Docker 在工作节点上
配置Kubernetes存储库后,运行下面的命令来安装kubelet和docker软件包
yum install kubelet docker -y
启动并启用Kubectl和Docker服务
systemctl restart docker && systemctl enable docker
systemctl restart kubelet && systemctl enable kubelet
步骤4:将工作节点加入主节点
将工作节点加入到主节点,需要提供令牌。 kubernetes master初始化后,会在输出得到加入主节点命令和令牌。 复制该命令并在工作节点上运行,如下所示:
使用kubectl命令从主节点验证节点状态:
如本文所见,主节点和工作节点处于工作就绪状态,已经成功安装了kubernetes 1.7,并且已经成功加入工作节点。 接下来就可以创建Pod和服务。
Jenkins Pipeline 有诸多的语法,如需了解更多的关于Trigger, Input, When 等指令用法,大家可参见Jenkins 官方文档和逗点云的Pipeline 全解析系列课程(https://ke.qq.com/course/458814?tuin=9239b190)和Pipeline 入门系列课程。
更多推荐
所有评论(0)