在CentOS 7上单机安装Docker和Kubernetes(K8s)涉及一系列步骤,包括环境准备、安装Docker、配置Kubernetes的yum源、安装Kubernetes组件以及初始化Kubernetes集群。以下是详细的步骤和代码示例:
一、环境准备
更新系统:
bash
sudo yum update -y
这一步是为了确保系统是最新的,并且安装了所有必要的补丁和安全更新。
关闭防火墙(可选,但推荐在测试环境中进行):
bash
sudo systemctl disable firewalld
sudo systemctl stop firewalld
注意:在生产环境中,应该谨慎处理防火墙设置,以确保系统安全。
关闭和禁用交换空间(Kubernetes不推荐在启用交换空间的情况下运行):
bash
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
二、安装Docker
安装必要的软件包:
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置Docker的yum源:
你可以选择使用Docker的官方源或国内的镜像源(如阿里云)来加速下载。这里以Docker官方源为例:
bash
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
bash
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker CE:
bash
sudo yum install docker-ce -y
启动Docker服务并设置为开机启动:
bash
sudo systemctl enable docker
sudo systemctl start docker
三、配置Kubernetes的yum源
创建Kubernetes的yum仓库文件:
bash
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
四、安装Kubernetes组件
安装kubelet、kubeadm和kubectl:
bash
sudo yum install -y kubelet kubeadm kubectl
启动kubelet服务并设置为开机启动:
bash
sudo systemctl enable kubelet
sudo systemctl start kubelet
五、初始化Kubernetes集群
使用kubeadm初始化集群:
bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
注意:--pod-network-cidr参数指定了Pod网络的CIDR范围,这是安装网络插件时必需的。
配置kubectl以访问集群:
初始化完成后,按照kubeadm输出的提示,执行以下命令来配置kubectl:
bash
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之间的通信。这里以Calico为例:
bash
sudo kubectl apply -f https://docs.projectcalico.org/v3.x/manifests/calico.yaml
注意:请确保替换v3.x为实际的Calico版本号。
至此,你已经在CentOS 7上成功安装了Docker和Kubernetes,并初始化了Kubernetes集群。现在,你可以使用kubectl命令来管理你的集群了。
以上步骤和代码示例基于当前可用的信息和最佳实践编写,但请注意,由于软件和系统不断更新,具体的步骤和参数可能会有所变化。因此,建议在执行上述步骤之前,先查看官方文档和社区资源以获取最新的信息。