k3s的运行方法
1 直接安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
2 docker 运行
rancher/k3s:v1.19.3-k3s2
本文使用第2种方法

运行k3s

前置条件

rancher/k3s:v1.19.3-k3s2镜像没有使用apk,没有curl bash tcpdump等工具
使用如下的工具准备镜像需要的文件
https://gitee.com/wushifeng/devops/blob/master/k8s/k3s-docker/files/build-base.sh

主要内容

1 下载必须的文件放到约定的目录
2 使用docker-compose运行k3s
3 将helm shell kube-explorer等内容挂入系统

  1. #!/bin/bash
  2. set -euo pipefail
  3. BaseDir=$(cd "$(dirname "$0")"; pwd)
  4. cd ${BaseDir}
  5. #需要的一些基础文件不存在的话进行自动下载
  6. if [ ! -f ./pkg/v1.19.3-k3s2-k3s-airgap-images-amd64.tar ]; then
  7. curl -o ./pkg/v1.19.3-k3s2-k3s-airgap-images-amd64.tar "http://rancher-mirror.cnrancher.com/k3s/v1.19.3-k3s2/k3s-airgap-images-amd64.tar"
  8. curl -o ./pkg/kube-explorer-linux-amd64 "http://rancher-mirror.cnrancher.com/kube-explorer/v0.2.8/kube-explorer-linux-amd64"
  9. curl -o ./pkg/helm-v3.8.1-linux-amd64.tar.gz "http://rancher-mirror.cnrancher.com/helm/v3.8.1/helm-v3.8.1-linux-amd64.tar.gz"
  10. pushd pkg
  11. tar -xzvf helm-v3.8.1-linux-amd64.tar.gz
  12. mv linux-amd64 helm-linux-amd64
  13. popd
  14. docker images|grep "rancher/shell" ||{
  15. docker pull rancher/shell:v0.1.6
  16. }
  17. docker save rancher/shell:v0.1.6 -o ./pkg/rancher-shell.0.1.6.tar
  18. fi
  19. docker ps --format '{{.Names}} {{.Status}}' | grep 'k3s' && {
  20. echo "k3s is run"
  21. exit 1
  22. }
  23. docker ps -a --format '{{.Names}} {{.Status}}' | grep 'k3s' && docker ps -a --format '{{.Names}} {{.Status}}' | grep 'k3s' |grep 'Exited'
  24. if [ "$?" = "0" ]; then
  25. echo "start stopped k3s"
  26. ./k3s.sh &> ./pkg/k3s.log &
  27. while [ -z "$(curl -ks https://localhost:6443)" ]; do
  28. echo "wait start"
  29. done
  30. else
  31. #干净运行的话,执行这个
  32. ./k3s.sh down|| true
  33. echo "start clean k3s"
  34. ./k3s.sh &> ./pkg/k3s.log &
  35. while [ -z "$(./k3s.sh status|grep Ready)" ]; do
  36. echo "not started"
  37. sleep 3
  38. done
  39. #
  40. echo "install helm and shell"
  41. ./k3s.sh helm
  42. ./k3s.sh shell
  43. fi
  44. #kube-explorer使用
  45. echo "run kube-explorer: http://localhost:9898/dashboard/"
  46. ./k3s.sh exp

完整文件参考
https://gitee.com/wushifeng/devops/tree/master/k8s/k3s-docker

正常运行后
image.png
可以查看 http://localhost:9898/dashboard
image.png
image.png

k3s上安装kubeapps

k8s的开源应用市场
如上的k3s运行起来后,可以在其上安装应用。
kubeapps的安装步骤
1 下载kubeapps的镜像
https://gitee.com/wushifeng/devops/blob/master/k8s/k3s-docker/kubeapps/offline.sh
2 运行
https://gitee.com/wushifeng/devops/blob/master/k8s/k3s-docker/kapp.sh
如上使用helm安装和配置了kubeapps

通过导出的端口 http://localhost:8080 访问
添加helm仓库
helm repo add azure http://mirror.azure.cn/kubernetes/charts/
helm repo add elastic https://helm.elastic.co
image.png

image.png
此时就可以部署各种服务了,如下图
image.png