在当今的云计算时代,容器技术已经成为企业级应用部署的标配。Docker和Kubernetes是容器技术中最为核心的两个工具。Docker负责容器的创建和运行,而Kubernetes则负责容器的编排和管理。本文将从零开始,详细介绍如何在Ubuntu系统上安装和使用Docker与Kubernetes,帮助你轻松掌握容器编排的实战技巧。
第一部分:Ubuntu系统环境准备
在开始之前,请确保你的Ubuntu系统满足以下要求:
- 操作系统:Ubuntu 18.04或更高版本
- 系统角色:普通用户
- 网络连接:确保你的Ubuntu系统可以正常访问互联网
第二部分:安装Docker
2.1 安装Docker
- 打开终端,执行以下命令添加Docker官方GPG密钥:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- 添加Docker官方仓库:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- 更新仓库并安装Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 检查Docker版本:
docker --version
2.2 配置Docker
- 添加当前用户到docker组:
sudo usermod -aG docker $USER
newgrp docker
- 查看docker组中的用户:
grep docker /etc/group
第三部分:安装Kubernetes
3.1 安装Kubeadm、Kubelet和Kubectl
- 添加Kubernetes官方GPG密钥:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
- 添加Kubernetes官方仓库:
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
- 更新仓库并安装Kubeadm、Kubelet和Kubectl:
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
- 设置Kubelet服务为开机启动:
sudo systemctl enable kubelet
- 修改Kubelet配置文件:
sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
在文件中添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/kubelet \
--bootstrap-token-identity=kubelet \
--bootstrap-token=kubeadm \
--config=/var/lib/kubelet/kubeadm-flags.env \
--register-node \
--kubelet-dir=/var/lib/kubelet \
--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause-amd64:3.1 \
--allow-privileged=true \
--network-plugin=cni \
--cni-conf-dir=/etc/cni/net.d \
--cni-bin-dir=/opt/cni/bin \
--kubeconfig=/etc/kubernetes/kubelet.conf \
--container-runtime=docker
- 重启Kubelet服务:
sudo systemctl daemon-reload
sudo systemctl restart kubelet
3.2 验证Kubernetes安装
- 查看Kubernetes版本:
kubectl version --short
- 查看节点状态:
kubectl get nodes
第四部分:使用Kubernetes部署应用
4.1 创建Deployment
- 创建一个名为nginx-deployment.yaml的文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15.8
ports:
- containerPort: 80
- 应用Deployment配置:
kubectl apply -f nginx-deployment.yaml
- 查看Pod状态:
kubectl get pods
4.2 访问Nginx服务
- 获取Nginx服务的NodePort:
kubectl get svc nginx-deployment
- 访问Nginx服务:
curl <NodeIP>:<NodePort>
第五部分:总结
本文从零开始,详细介绍了如何在Ubuntu系统上安装和使用Docker与Kubernetes。通过本文的学习,你将能够轻松掌握容器编排的实战技巧,为后续的云原生应用开发打下坚实的基础。希望本文能对你有所帮助!