docker 环境安装
- 查看是否安装了 Podman
CentOS Linux release 8.1.1911 系统,安装 docker 环境的时候报错
file /usr/share/man/man1/docker-attach.1.gz from install of docker-ce-cli-1:19.03.6-3.el7.x86_64 conflicts with file from package podman-manpages-1.4.2-5.module_el8.1.0+237+63e26edc.noarch
所以我这里写先查询是否安装了 Podman
- [root@localhost ~]#
rpm -q podman
podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64
- 卸载 Podman
dnf remove podman
- 安装 docker 环境
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 docker
centos 8.* 后面加 ‘—allowerasing’
sudo yum install docker-ce
- 设置 docker 自启动
sudo systemctl enable docker
- 启动 docker
sudo systemctl start docker
- 更改路径
- 停止 docker 服务。
systemctl stop docker; //每个 liunx 版本的命令不一样 - 创建新的 docker 目录,执行命令 df
-h,找一个大的磁盘。我在/data 目录下面建了 /data/docker/lib 目录,执行的命令是:
mkdir -p /data/docker/lib
- 迁移/var/lib/docker 目录下面的文件到 /data/docker/lib 下面
cp -R /var/lib/docker/* /data/docker/lib/
- 修改 docker 配置 3. 修改 docker 的 systemd 的 docker.service 的配置文件
不知道 配置文件在哪里可以使用 systemd 命令显示一下.
systemctl disable docker
systemctl enable docker
- 显示结果
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
- 修改 docker.service 文件.
vi /usr/lib/systemd/system/docker.service
在里面的 EXECStart 的后面增加后如下:
查找 ExecStart=
添加 —graph /data/docker/lib 到该行最后。
sudo systemctl daemon-reload
sudo systemctl restart docker
K3S 部署
- 确定 k3s 的版本
export INSTALL_K3S_VERSION=v1.20.11+k3s2
- 链接数据库和 kubectl 环境,用 docker 的方式运行容器
export INSTALL_K3S_EXEC="--datastore-endpoint=mysql://k3s_rancher:@#H390xh@tcp(10.17.2.132:3306)/k3s_rancher --docker --kube-apiserver-arg service-node-port-range=1-65000 --no-deploy traefik --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
**PS:**第二个 master 节点需要安装 token 环境变量
cat /var/lib/rancher/k3s/server/node-token
export K3S_TOKEN=*****
- 下载配置文件且自动安装
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
Kubectl 安装
- 安装
- 下载 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- 使 kubectl 二进制可执行文件
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- 验证
kubectl version --client
- 命令
- 创建别名
在~.bashrc 或类似文件中:alias k=kubectl
**PS:**效果等同于在 xshell 中输入 kubectl - k8s 命令自动补全
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
K3S 图形化界面
- 安装 kuboard
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
- 获取 token
1)管理员 token 获取方法
echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d)
2)普通用户 token 获取方法
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}')
- 暴露 kuboard 的端口号
kubectl get svc -n kube-system
- nodeip 地址加端口号进行访问
http://192.188.1.1:32567/login
证书部署
**ps:**正式环境用了权威的证书(apache)
- 新证书安装
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl --kubeconfig=$kubeconfig create namespace cattle-system
kubectl --kubeconfig=$kubeconfig \
-n cattle-system create \
secret tls tls-rancher-ingress \
--cert=./tls.crt \
--key=./tls.key
阿里云上获取
- 证书替换
1)卸载证书
kubectl -n cattle-system delete secret tls-rancher-ingress
2)安装证书
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt \
--key=tls.key
helm 安装 rancher
helm 安装
- 下载
wget https://get.helm.sh/helm-v3.6.0-linux-amd64.tar.gz
- 解压
tar zxvf helm-v3.6.0-linux-amd64.tar.gz
- 将二进制文件移动至/usr/local/bin/
sudo mv linux-amd64/helm /usr/local/bin/helm
- 验证安装
helm help
helm 部署 rancher
- 使用 helm repo add 来添加仓库,不同的地址适应不同的 Rancher 版本,请替换命令中的 <CHART_REPO>,替换为 latest,stable 或 alpha。
latest: 最新版,建议在尝试新功能时使用。
stable:稳定版,建议生产环境中使用。
alpha:预览版, 未来版本的实验性预览。
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
- 给.kube/config 授权
chmod g-r ~/.kube/config
chmod o-r ~/.kube/config
- 下载 rancher 包
helm fetch rancher-stable/rancher --version=v2.5.11
- 使用已有证书渲染的 Rancher Helm 模板
helm template rancher ./rancher-2.5.11.tgz --output-dir . \
--no-hooks \
--namespace cattle-system \
--set hostname=hwrancher.inm.cc \
--set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher \
--set tls=external \
--set ingress.tls.source=secret \
--set useBundledSystemChart=true
- 安装 rancher
kubectl create namespace cattle-system
kubectl -n cattle-system apply -R -f ./rancher
- 命令
kubectl get ingress -A
kubectl get pods -A
kubectl get svc -A
kubectl get deploy -A
kubectl -n cattle-system rollout status deploy/rancher
kubectl -n cattle-system get deploy rancher
helm 报错
-
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.kube/config WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /root/.kube/config
解决方法
```shell
chmod g-r ~/.kube/config
chmod o-r ~/.kube/config
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于