2024-06-10 渥太华微生活
Kubernetes 已成为部署、管理和扩展容器化应用程序的首选容器编排平台。
在本文中,我们将完成在 Ubuntu 上设置开发环境以及使用 kubectl、Docker 和 Minikube 开始使用 Kubernetes 的过程。
1. 更新系统并安装依赖
更新Ubuntu系统,并安装相关的依赖包:
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl
2. 安装 Docker
Docker 是一个流行的平台,用于在容器中构建、运送和运行应用程序。
在 Ubuntu 上安装 Docker:
sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
检查是否安装成功。
docker version
3. 安装 Minikube
Minikube 是一款工具,可让您在本地运行 Kubernetes 集群以进行开发和测试。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
检查是否安装成功。
minikube version minikube version: v1.33.1 commit: 5883c09216182566a63dff4c326a6fc9ed2982ff
4. 安装 kubectl
Kubectl 是用于与 Kubernetes 集群交互的命令行工具。
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
下载 kubectl 后,设置 kubectl 二进制文件的可执行权限并将其移动到路径 /usr/local/bin。
chmod +x kubectl sudo mv kubectl /usr/local/bin/
检查是否安装成功。
kubectl version Client Version: v1.30.1 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
5. 使用 Docker 驱动程序启动 Minikube
使用 Docker 驱动程序启动 Minikube 集群:
minikube start --driver=docker
检查是否安装成功。
minikube status
kubectl cluster-info
kubectl config view
kubectl get nodes
kubectl get pods
6. 管理 Minikube 插件 (Managing Minikube Addons)
插件是 minikube 集群的附加功能,默认情况下,在 minikube 安装期间仅启用几个插件。
要列出 minikube 的插件,请运行以下命令。
minikube addons list
启用 Ingress 控制器插件:
minikube addons enable ingress
7. 部署应用测试整体安装
1) 通过命令行方式部署应用:
a) 部署一个简单的 Nginx Web 服务器:
kubectl create deployment my-nginx --image=nginx:latest
检查结果:
kubectl get deployment
kubectl get pods
b) 创建服务:
创建一个 NodePort 服务:
kubectl expose deployment my-nginx --port=80 --type=NodePort
检查结果:
kubectl get services
使用以下命令获取您的服务网址:
minikube service my-nginx
c) 访问网址检查结果:
curl http://192.168.49.2:31595
2) 通过YAML文件方式部署应用:
a) 创建部署文件:
deployment.yaml:
apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx-container image: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: nginx ports: - protocol: TCP port: 8080 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress spec: ingressClassName: nginx rules: - host: domain.com http: paths: - pathType: Prefix path: "/" backend: service: name: my-service port: number: 8080
b) 修改hosts文件添加域名:
找到主机名:
# find your hostname hostname
修改/etc/hosts文件,添加这一行:
192.168.49.2 domain.com YOURHOSTNAME
c) 使用下面命令部署pod, service和ingress:
kubectl apply -f deployment.yaml
检查结果:
kubectl get deployment NAME READY UP-TO-DATE AVAILABLE AGE my-deployment 1/1 1 1 49s kubectl get pod NAME READY STATUS RESTARTS AGE my-deployment-59fc6ffbf-s7lp7 1/1 Running 0 52s kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 29m my-service ClusterIP 10.101.193.98 <none> 8080/TCP 118s kubectl get ingress NAME CLASS HOSTS ADDRESS PORTS AGE my-ingress nginx domain.com 192.168.49.2 80 23m
c) 访问网址检查结果:
# 如果没有在ingress中设置host,就用IP访问 curl http://192.168.49.2 # 如果在ingress中设置host,就用域名访问 curl http://domain.com
8. 管理 Minikube 集群
1) 停止 minikube
minikube stop
2) 删除 minikube
minikube delete
3) 启动 minikube
minikube start
4) 使用自定义资源(如 8 GB RM 和 4 CPU)启动 minikube
minikube config set cpus 4 minikube config set memory 8192 minikube delete minikube start
5) 删除 docker
// check docker is installed or not dpkg -l | grep -i docker // remove volume , network , container and image files sudo docker volume prune -f sudo docker network prune -f sudo docker container prune -f sudo docker image prune -a // remove docker sudo apt purge docker or sudo apt remove docker // remove dependency packages related to docker sudo apt autoremove sudo apt autoclean
编者注:新闻取自各大新闻媒体,新闻内容并不代表本网立场!文字和图片来自网络,版权归原作者所有。如有侵权,请速联系小编,立即删除。
全部评论 (0) |
---|