Docker 安装和配置
卸载较旧的 Docker 版本称为 docker 或 docker-engine
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
添加docker仓库源地址(阿里云)
sudo dnf install -y yum-utils
sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker(默认安装最新版本),并设置开机自启动。
sudo yum install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable docker –now
将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo
sudo groupadd docker
sudo usermod -aG docker $USER
docker 配置(可选)
sudo vi /etc/docker/daemon.json
1{
2 "registry-mirrors":[
3 "https://registry.docker-cn.com",
4 "https://hub-mirror.c.163.com",
5 "https://docker.mirrors.ustc.edu.cn"
6 ],
7 "exec-opts": ["native.cgroupdriver=systemd"],
8 "data-root": "/home/zhangcong/dev/docker"
9}
注意:
registry-mirrors:配置为国内源
data-root:修改默认存储位置;先停止服务,然后把/var/lib/docker移动到修改后的目录,再创建软链接,最后启动服务
sudo systemctl stop docker
sudo mv /var/lib/docker /home/zhangcong/dev/
sudo ln -s /home/zhangcong/dev/docker /var/lib/docker
sudo systemctl start docker
查看启动详情
docker info
k8s的安装和配置
安装 minikube:
1# 下载地址:
2# Intel x86_64
3root@lenovo-e47-1no6e7d:/data/downloads/k8s# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
4
5# Apple arm64
6root@lenovo-e47-1no6e7d:/data/downloads/k8s# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
7
8# 设置文件可执行
9root@lenovo-e47-1no6e7d:/data/downloads/k8s# chmod +x minikube-linux-arm64
10
11# 安装到bin目录
12root@lenovo-e47-1no6e7d:/data/downloads/k8s# install minikube-linux-amd64 /usr/local/bin/minikube
13# 或者:
14root@lenovo-e47-1no6e7d:/data/downloads/k8s# ln -s /data/downloads/k8s/minikube-linux-amd64 /usr/local/bin/minikube
15
16# 查看版本
17root@lenovo-e47-1no6e7d:/data/downloads/k8s# minikube version
18minikube version: v1.32.0
19commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d
安装 kubectl
1# 下载 kubectl
2# 后面启动minikube时,指定了k8s的版本参数为v1.23.8;所以建议也下载v1.23.8的kubectl
3root@lenovo-e47-1no6e7d:/data/downloads/k8s# curl -LO "https://dl.k8s.io/release/v1.23.8/bin/linux/amd64/kubectl"
4# 或者下载最新的kubectl,但是不知道会不会有什么问题
5root@lenovo-e47-1no6e7d:/data/downloads/k8s# curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
6
7# 设置文件可执行
8root@lenovo-e47-1no6e7d:/data/downloads/k8s# chmod +x kubectl
9
10# 安装到bin目录
11root@lenovo-e47-1no6e7d:/data/downloads/k8s# ln -s /data/downloads/k8s/kubectl /usr/local/bin/kubectl
12
13# 查看版本
14root@lenovo-e47-1no6e7d:/data/downloads/k8s# kubectl version --client
15Client Version: v1.28.3
16Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
使用 minikube 创建并运行 k8s
注意:此处要以普通用户运行(还需要配置docker用户组;上面的docker安装中有具体操作)否则报错:Exiting due to DRV_AS_ROOT: The “docker” driver should not be used with root privileges.
1[zhangcong@master dev]$ minikube start --driver='docker' --kubernetes-version=v1.23.8 --image-mirror-country='cn'
2* Almalinux 9.3 上的 minikube v1.32.0
3* 根据用户配置使用 docker 驱动程序
4* 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers
5* 使用具有 root 权限的 Docker 驱动程序
6* 正在集群 minikube 中启动控制平面节点 minikube
7* 正在拉取基础镜像 ...
8 > index.docker.io/kicbase/sta...: 453.90 MiB / 453.90 MiB 100.00% 4.50 Mi
9! minikube was unable to download registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.42, but successfully downloaded docker.io/kicbase/stable:v0.0.42 as a fallback image
10* Creating docker container (CPUs=2, Memory=3800MB) ...
11 > kubectl.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
12 > kubeadm.sha256: 64 B / 64 B [-------------------------] 100.00% ? p/s 0s
13 > kubelet: 118.78 MiB / 118.78 MiB [------------] 100.00% 6.45 MiB p/s 19s
14 - 正在生成证书和密钥...
15 - 正在启动控制平面...
16 - 配置 RBAC 规则 ...
17 - 正在使用镜像 registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
18* 正在验证 Kubernetes 组件...
19* 启用插件: storage-provisioner, default-storageclass
20
21! /usr/local/bin/kubectl 的版本为 1.29.0,可能与 Kubernetes 1.23.8 不兼容。
22 - 想要使用 kubectl v1.23.8 吗?尝试使用 'minikube kubectl -- get pods -A' 命令
23* 完成!kubectl 现在已配置,默认使用"minikube"集群和"default"命名空间
image-mirror-country 为指定使用国内源:registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetes-version 指定部署的版本(最新版兼容性坑比较多,所以选择低版本)
如果安装还有报错,请删除已有的k8s:
1zhangcong@lenovo-e47-1no6e7d:~$ minikube delete
2# 删除所有本地k8s和配置文件
3zhangcong@lenovo-e47-1no6e7d:~$ minikube delete --all
再重新执行上面的安装操作。
其他操作:
1# 启动k8s(前提是前面已经安装了k8s;否则就直接安装最新版本的k8s,然后启动)
2zhangcong@lenovo-e47-1no6e7d:~$ minikube start
3
4# 进入到K8S的机器中
5zhangcong@lenovo-e47-1no6e7d:~$ minikube ssh
6
7# 查看K8S状态
8zhangcong@lenovo-e47-1no6e7d:~$ minikube status
9
10# 停止集群
11zhangcong@lenovo-e47-1no6e7d:~$ minikube stop
访问 kubernetes-dashboard
1zhangcong@lenovo-e47-1no6e7d:~$ minikube dashboard --url
2🤔 正在验证 dashboard 运行情况 ...
3🚀 正在启动代理...
4🤔 正在验证 proxy 运行状况 ...
5http://127.0.0.1:37351/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
此时,可以在本机浏览器中输入上面的地址访问dashboard。
为了能在其他客户机访问dashboard,需要在minikube的Linux上添加外部访问代理:
1zhangcong@lenovo-e47-1no6e7d:~$ kubectl proxy --address='0.0.0.0' --port=8000 --accept-hosts='^*$'
2Starting to serve on [::]:8000
此处,address、port均为minikube所在机器的IP和端口。
设置后,在其他客户机可以通过浏览器 http://192.168.0.91:8000/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 访问。
注意:minikube dashboard 和 kubectl proxy 都会占用一个终端连接,如果要后台运行,使用nohup …… &
查看集群状态(如下表示启动成功):
1zhangcong@lenovo-e47-1no6e7d:~$ kubectl get po -A
2NAMESPACE NAME READY STATUS RESTARTS AGE
3kube-system coredns-65c54cc984-lk9z9 1/1 Running 2 (4h37m ago) 24h
4kube-system etcd-minikube 1/1 Running 2 (4h37m ago) 24h
5kube-system kube-apiserver-minikube 1/1 Running 2 (4h37m ago) 24h
6kube-system kube-controller-manager-minikube 1/1 Running 2 (4h37m ago) 24h
7kube-system kube-proxy-hldmb 1/1 Running 2 (4h37m ago) 24h
8kube-system kube-scheduler-minikube 1/1 Running 2 (4h37m ago) 24h
9kube-system storage-provisioner 1/1 Running 5 (4h8m ago) 24h
10kubernetes-dashboard dashboard-metrics-scraper-7db978b848-6njgz 1/1 Running 0 4h8m
11kubernetes-dashboard kubernetes-dashboard-6f4c897964-pp4rk 1/1 Running 0 4h8m
查看minikube的 ip
1zhangcong@lenovo-e47-1no6e7d:~$ minikube ip
2192.168.49.2
评论