K3s
hostnamectl set-hostname k3s-master01 && bash
hostnamectl set-hostname k3s-node1 && bash
hostnamectl set-hostname k3s-node2 && bash
- master 修改/etc/hosts文件
vim /etc/hosts
192.168.1.99 k3s-master01
192.168.1.89 k3s-node1
192.168.1.90 k3s-node2
- 关闭以下服务
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙
setenforce 0 #setenforce 0 #关闭selinux 临时关闭
sed -i 's/enforcing/disabled/' /etc/selinux/config #永久关闭
swapoff -a #关闭swap 临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久关闭
- 同步服务器时间
yum install ntpdate -y
ntpdate time.windows.com
- 设置docker镜像并安装docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-20.10.23
systemctl enable docker && systemctl start docker
vim /etc/docker/daemon.json
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://noohub.ru" ] }
systemctl daemon-reload && systemctl restart docker
- master下载k3s服务离线安装k3s 当前为V1.29.6+K3S2
下载k3s二进制文件
wget https://github.com/k3s-io/k3s/releases/download/v1.29.6%2Bk3s2/k3s
https://github.com/k3s-io/k3s/releases/download/v1.29.6%2Bk3s2/k3s
离线依赖
wget https://github.com/k3s-io/k3s/releases/download/v1.29.6%2Bk3s2/k3s-airgap-images-amd64.tar
运行命令
cp k3s /usr/local/bin
chmod +x /usr/local/bin/k3s
docker load -i k3s-airgap-images-amd64.tar
下载k3s可执行文件
wget https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
chmod +x k3s-install.sh
安装k3s
# INSTALL_K3S_SKIP_DOWNLOAD这一变量设置为 true 时,k3s-install.sh 脚本将跳过下载 K3s 二进制文件的步骤。这通常用于已经手动下载和放置了 K3s 二进制文件的场景。
# server 指定 K3s 以服务器模式运行。这是 K3s 主节点的默认运行模式
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 644 --tls-san 192.168.1.99 --docker --node-ip 192.168.1.99' ./k3s-install.sh
MASTER
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
kubectl get nodes
kubectl get pods -n kube-system
获取token
cat /var/lib/rancher/k3s/server/node-token
检查是否安装正常
k3s check-config
vim /etc/default/grub
GRUB_CMDLINE_LINUX="user_namespace.enable=1 原有信息"
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
节点加入k3s
下载k3s二进制文件
wget https://github.com/k3s-io/k3s/releases/download/v1.29.6%2Bk3s2/k3s
运行命令
cp k3s /usr/local/bin
chmod +x /usr/local/bin/k3s
下载k3s可执行文件
https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
chmod +x k3s-install.sh
加入k3s
设置环境变量
export INSTALL_K3S_SKIP_DOWNLOAD=true
export K3S_TOKEN= master 获取token
export K3S_URL=https://192.168.1.99:6443
部署节点加入k3s服务
INSTALL_K3S_EXEC='--docker' ./k3s-install.sh
NODE 加入k3s
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.1.99:6443 K3S_TOKEN=master 获取的token sh -
kubectl get nodes
kubectl get pods -n kube-system
kubectl get svc
本地Image仓库管理+应用
Docker Harbor官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
-
- 下载安装
wget harbor-offline-installer-v2.0.1.tgz
tar -zxvf harbor-offline-installer-v2.0.1.tgz
-
- 修改配置文件 默认域名、端口、密码登harbor.yml
- 目前没有使用https 模式没有调通,使用普通http模式
-
- 安装 ./install.sh 环境必须有 docker、docker-compose 支持
wget docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
./install.sh
-
- 安装成功后直接浏览器打开 http://192.168.1.99:9090
- 默认用户 admin 密码 Harbor12345
-
- 根据文档命令使用即可
-
- 下载cutos 包(自己的应用包)
wget cutos-2.2.0.1.tar
-
- 导入到docker
docker load < cutos-2.2.0.1.tar
vim /etc/docker/daemon.json
添加代码
"insecure-registries":["192.168.1.99:9090"]
-
- 要通过docker tag 将该镜像标志为要推送到私有仓库
docker tag cutos:2.2.0.1 192.168.1.99:9090/sts/cutos:2.2.0.1
通过 docker push 命令将 cutos 镜像 push到私有仓库中先登录
docker login 192.168.1.99:9090
docker push 192.168.1.99:9090/sts/cutos:2.2.0.1
-
- 编辑自己的cutos-pod.yaml文件
修改文件镜像地址:image: 192.168.1.99:9090/sts/cutos:2.2.0.1
kubectl apply -f cutos-pod.yaml
kubectl expose deployment sts-cutos --port=8080 --type=NodePort
查看安装状态 kubectl get pod,svc -o wide(创建后需要等待一段时间如下图)
-
- 部署完毕 访问任意地址 http://192.168.1.99:30662 (IP:89、90) 显示如下图
-
-
部署dashboard(目前运行起来有点问题)
- 下载配置文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml
-
vim recommended.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
- docker pull kubernetesui/dashboard:v2.0.0
- kubectl apply -f recommended.yaml
- kubectl get pods -n kube-system
- kubectl get all -n kubernetes-dashboard -o wide
- kubectl apply -f admin-user.yml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard
- kubectl apply -f admin-user-role.yml
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard
- kubectl create token admin-user -n kubernetes-dashboard
-
- 部署完毕 访问任意地址 http://192.168.1.99:30662 (IP:89、90) 显示如下图