- 操作系统镜像:CentOS 7.5 64位
- IP地址
- 公网:49.*.*.155
- 内网:172.17.0.17
- 安全组
- 开放80端口入站(用于站点正常访问)
- 开放8080端口入站(用于调试)
- 开放22端口(用于远程)
- 远程到服务器
- ssh root@49.*.*.155
- A记录添加
- www:www.okracode.com记录添加(非本次必须)
- @:okracode.com记录添加(非本次必须)
- *:*.okracode.com记录添加(必须,否则子域名无法解析到主机)
- 添加软件源
- yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 更新源(可能需要几分钟)
- yum -y update
- 查询可用安装包
- yum list docker-ce --showduplicates | sort -r
- 安装docker(此处选择3:20.10.5-3.el7版本; 注:指定版本号的格式为docker-ce-版本号.x86_64;此处安装需要几分钟)
- yum -y install docker-ce-3:20.10.5-3.el7.x86_64
- 启动docker并设置开机启动
- systemctl start docker.service && systemctl enable docker.service
- 查看docker状态(Active: active (running))
- systemctl status docker.service
- 配置源
- cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
- cat < /etc/yum.repos.d/kubernetes.repo
- 安装kubectl/kubelet/kubeadm
- yum install -y kubelet-1.19.8 kubectl-1.19.8 kubeadm-1.19.8
- 启动kubelet:systemctl enable kubelet && systemctl start kubelet
- kubeadm初始化(参照文档:https://docs.projectcalico.org/getting-started/kubernetes/quickstart)
- 初始化kubeadm:kubeadm init --ignore-preflight-errors=NumCPU --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.19.8 --pod-network-cidr=192.168.0.0/16
- 根据控制台输出内容配置kubectl
- mkdir -p $HOME/.kube
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- sudo chown
$(id -u):$ (id -g) $HOME/.kube/config
- 验证kubectl可用(此时node状态为NotReady)
- kubectl get no
- 修改调度器Unhealthy状态
- 查看调度器:kubectl get cs
- 如果scheduler和controller-manager都为Unhealthy,将port=0这行注释掉
- vim /etc/kubernetes/manifests/kube-scheduler.yaml
- vim /etc/kubernetes/manifests/kube-controller-manager.yaml
- systemctl restart kubelet.service
- 确认调度器:kubectl get cs
- 安装网络插件calico(参照文档同上)
- kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
- kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
- 监控是否安装完成(该ns下有pod且状态为Running时即可):kubectl get pods -n calico-system --watch
- 确认node已经Ready:kubectl get no
- 允许master节点部署pod:kubectl taint nodes --all node-role.kubernetes.io/master-
- 定义docsify的docker镜像
- vim Dockerfile
FROM node:latest LABEL description="A demo Dockerfile for build Docsify." WORKDIR /docs RUN npm install -g docsify-cli@latest EXPOSE 3000/tcp ENTRYPOINT docsify serve .
- vim Dockerfile
- 创建镜像
- docker build -f Dockerfile -t nuptaxin/docsify-docker:v1.0.0 .
- 参照docsify官方文档编写站点(https://docsify.js.org/#/quickstart)
- 创建入口文件:index.html
- 编写首页文件:README.md
- 本地站点测试(已通过npm i docsify-cli -g指令本地安装过docsify)
- 启动站点:docsify serve docs
- 访问站点:https://localhost:3000
- 上传站点:git push
- 如果仓库在github上,可在gitee上导入,防止云服务器拉取不到:https://gitee.com/projects/import/github/status
- 定义replicaSet
- pod上有两个容器
- 容器1:使用git-sync同步git仓库
- 容器2:部署docsify解析站点
- yaml文件参照okra-home-rs.yaml
- pod上有两个容器
- 创建 replicaSet
- kubectl create -f okra-home-rs.yaml
- 测试访问
- 端口映射临时访问(需要开放对应targetPort的防火墙):kubectl port-forward rs/okra-home-rs 8080:3000 -