1、部署环境
- 
华为云ECS
 - 
操作系统: Linux CentOS 7.9 64位
 - 
CPU & 内存:2核(vCPU) 4 GiB
 - 
硬盘:需要20G
 - 
网络:需要网络,要下载、访问
 - 
容器:需要先安装Docker, Docker 版本:24.0.4
 - 
Kubernetes 版本:1.23.8
 
2.安装docker并启动
(1)移除以前docker相关包
            
            
              arduino
              
              
            
          
          sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
        (2)配置yum源
            
            
              arduino
              
              
            
          
          sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        (3)安装docker
            
            
              lua
              
              
            
          
          sudo yum install -y docker-ce docker-ce-cli containerd.io
        也可以指定某个版本进行安装,例如:
            
            
              bash
              
              
            
          
          # 这只是个例子
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6
        (4)启动
            
            
              bash
              
              
            
          
          systemctl enable docker --now
        (5)配置加速
这里额外添加了docker的生产环境核心配置cgroup
            
            
              bash
              
              
            
          
          sudo mkdir -p /etc/docker 
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://lkb2w75n.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
        其中,registry-mirrors 可以换成自己的加速地址

3.安装Minikube
(1)下载并安装 Minikube
            
            
              bash
              
              
            
          
          sudo curl -LO https://storage.googleapis.com/minikube/releases/v1.29.0/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
        
(2)查看 Minikube版本
minikube version
        
4.启动 Minikube
(1)启动集群
            
            
              ini
              
              
            
          
          minikube start --image-mirror-country='cn' --kubernetes-version=v1.23.8
        
发现报错了,意思是不能用root用户运行这个命令。
我们直接加上 --force,强制执行
            
            
              css
              
              
            
          
           minikube start --force --image-mirror-country='cn' --kubernetes-version=v1.23.8
        
命令参数:
            
            
              ini
              
              
            
          
           --image-mirror-country:cn 指定为国内镜像源;
 --cpus=2: 为 minikube 虚拟机分配 CPU 核数;
 --memory=2000mb: 为 minikube 虚拟机分配内存数;
 --kubernetes-version=***: 指定部署的kubernetes版本;
 --driver=docker:指定驱动,默认是 docker;
        (2)验证
            
            
              lua
              
              
            
          
          minikube status
        
查看版本
minikube kubectl version
        
服务端版本和客户端版本都正常展示了!
查看 minikube 容器 (Docker)
docker ps
        查看运行的全部pod
            
            
              arduino
              
              
            
          
          minikube kubectl -- get pods -A
        
5.安装 kubectl
由于 minikube 内置的 kubectl 命令功能不全,所以最好独立安装一个 kubectl
用以下命令下载最新发行版:
            
            
              bash
              
              
            
          
          curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
        安装 kubectl:
            
            
              bash
              
              
            
          
          sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
        查看版本的详细信息:
            
            
              css
              
              
            
          
          kubectl version --client --output=yaml
        
6.启动 dashboard
1.启动并显示代理地址
            
            
              css
              
              
            
          
          minikube dashboard --url
        这个 URL 只能在宿主机内部访问,在宿主机之外无法直接访问,需要设置 kubectl proxy 代理或其它方式

2.设置 kubectl proxy 代理
            
            
              ini
              
              
            
          
          minikube kubectl -- proxy --address='0.0.0.0'  --accept-hosts='^*$' &
        
需要修改 ECS 防火墙规则,允许入方向的 8001 端口通行。
在宿主机之外浏览器访问:
            
            
              ruby
              
              
            
          
          http://ECS公网IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
        
3.查看 dashboard 状态
            
            
              arduino
              
              
            
          
          kubectl get svc -n kubernetes-dashboard
        
或者查看全部的pod
            
            
              arduino
              
              
            
          
          kubectl get pod -A
        
2个kubernetes-dashboard 都是Running状态。
7.部署一个应用
部署一个nginx,并通过IP外网访问
(1)创建deployment
            
            
              ini
              
              
            
          
          kubectl create deployment test-nginx --image=nginx:1.7.9
        (2)查看
            
            
              arduino
              
              
            
          
          kubectl get pod,deploy
        
发现pod和deployment都已经部署成功了
(3)暴漏service端口
            
            
              css
              
              
            
          
          kubectl expose deploy test-nginx --port=80 --type=NodePort
        查看service
            
            
              arduino
              
              
            
          
          kubectl get svc
        
如果是kubernetes集群,直接访问 集群中的任意一个IP:80 即可访问,但是我们安装的是 minikube,所以不能用这个方式,需要对80端口转发
(4)转发端⼝
            
            
              bash
              
              
            
          
           kubectl port-forward --address 0.0.0.0 service/test-nginx 8080:80 &
        为了方便区分,将创建的service(test-nginx)80端口转发到8080


部署了一个应用后,我们回过头来看dashboard

看到我们用命令部署的nginx相关的pod、deployment、service都展现出来的。
欢迎关注我的公众号,第一时间接收最新文章~ 搜索公众号: 码咖 或者 扫描下方二维码:
