在 Ubuntu 22.04 LTS 上安装 Docker, Minikube 和 kubectl

2024-06-10 渥太华微生活

1713677690296.png

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

2024-06-10_102550.jpg


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

2024-06-10_110436.jpg

kubectl cluster-info

2024-06-10_110515.jpg

kubectl config view

2024-06-10_111029.jpg

kubectl get nodes

2024-06-10_110632.jpg

kubectl get pods

2024-06-10_111222.jpg


6. 管理 Minikube 插件 (Managing Minikube Addons)

插件是 minikube 集群的附加功能,默认情况下,在 minikube 安装期间仅启用几个插件。

要列出 minikube 的插件,请运行以下命令。

minikube addons list

2024-06-10_112757.jpg

启用 Ingress 控制器插件:

minikube addons enable ingress

2024-06-10_113345.jpg


7部署应用测试整体安装

1) 通过命令行方式部署应用:

a) 部署一个简单的 Nginx Web 服务器:

kubectl create deployment my-nginx --image=nginx:latest

检查结果

kubectl get deployment

2024-06-10_112121.jpg

kubectl get pods

2024-06-10_112200.jpg

b) 创建服务:

创建一个 NodePort 服务:

kubectl expose deployment my-nginx --port=80 --type=NodePort

检查结果:

kubectl get services

2024-06-10_113835.jpg

使用以下命令获取您的服务网址:

minikube service my-nginx

2024-06-10_114614.jpg

c) 访问网址检查结果:

curl http://192.168.49.2:31595

2024-06-10_114904.jpg

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

2024-06-10_114904.jpg


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
二维码 | 渥太华微生活

编者注:新闻取自各大新闻媒体,新闻内容并不代表本网立场!文字和图片来自网络,版权归原作者所有。如有侵权,请速联系小编,立即删除。

203
全部评论 (0)
展开快速发表评论

科技专栏

缩略图 | axios 介绍和使用

axios 介绍和使用

2024-06-04 103