Kubernetes 1.9 在 CentOS 系统上的部署与应用

Kubernetes 作为容器编排领域的领导者,其 1.9 版本在稳定性和功能上均有显著提升,本文将详细介绍如何在 CentOS 系统上部署 Kubernetes 1.9,并探讨其核心特性与实际应用场景。
环境准备与基础配置
在部署 Kubernetes 1.9 之前,需确保 CentOS 系统满足最低要求,推荐使用 CentOS 7.x 版本,内核版本不低于 3.10,关闭防火墙和 SELinux,以简化网络配置:
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0
为所有节点配置主机名和静态 IP 地址,并通过 /etc/hosts 文件实现主机名解析,确保节点间可以通过 SSH 免密通信,这是集群初始化的前提条件。
安装 Docker 与 Kubernetes 组件
Kubernetes 1.9 依赖 Docker 作为容器运行时,首先安装 Docker 并配置镜像加速:
sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker
添加 Kubernetes 的 Yum 源并安装核心组件:
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF sudo yum install -y kubelet kubeadm kubectl sudo systemctl enable kubelet
初始化 Kubernetes 集群
使用 kubeadm 工具初始化集群是 Kubernetes 1.9 的推荐方式,在主节点上执行以下命令:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,按照输出提示配置 kubectl 工具:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署网络插件
Kubernetes 集群需要网络插件实现 Pod 间通信,这里以 Flannel 为例:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
等待片刻后,通过 kubectl get nodes 验证节点状态,若显示 Ready 则表示集群部署成功。
部署应用与负载均衡
Kubernetes 1.9 支持通过 Deployment 和 Service 管理应用,以下示例部署一个 Nginx 应用:
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=LoadBalancer
通过 kubectl get svc 查看服务状态,待 EXTERNAL-IP 分配后即可访问 Nginx。
高级功能:RBAC 与 Helm
Kubernetes 1.9 引入了基于角色的访问控制(RBAC),增强了集群安全性,可以通过 kubectl 创建角色和绑定:

kubectl create role developer --verb=get,list,watch --resource=pods kubectl create rolebinding developer-binding --user=jane --role=developer
Helm 作为包管理工具,简化了应用的部署流程,安装 Helm 后,可通过 helm install 部署复杂应用。
常见问题与优化
在 Kubernetes 1.9 运行过程中,可能会遇到 Pod 启动失败或节点 NotReady 的问题,通常可通过以下步骤排查:
- 检查 Docker 和 kubelet 服务状态;
- 查看日志:
journalctl -u kubelet; - 确认网络插件配置是否正确。
FAQs
Q1: Kubernetes 1.9 是否支持多master节点部署?
A1: 是的,Kubernetes 1.9 支持 HA(高可用)集群部署,可通过 kubeadm 初始化多个 master 节点,并使用负载均衡器(如 Nginx)分发流量。
Q2: 如何升级 Kubernetes 1.9 到更高版本?
A2: Kubernetes 1.9 提供了 kubeadm upgrade 命令支持版本升级,但建议先在测试环境验证,并备份集群配置和数据,升级前需确保所有节点满足新版本要求。