k3s搭建及使用

k3s是rancher发布的一款轻量级Kubernetes,是经CNCF一致性认证的Kubernetes发行版。官网地址:https://www.rancher.cn/k3s/ 本文记录安装及初步使用过程。

环境要求

硬件资源

建议至少使用2~3个机器节点搭建集群,保证可用性。
k3s集群内的机器节点主要包括server和agent两种角色。server也可以作为worker。

开放端口

22/tcp 80/tcp 179/tcp 443/tcp 2376/tcp 2379/tcp 2380/tcp 3306/tcp 6379/tcp 6443/tcp 6783/tcp 8443/tcp 9090/tcp 9099/tcp 9100/tcp 9443/tcp 9796/tcp 10250/tcp 10254/tcp 30000-32767/tcp 500/udp 4500/udp 4789/udp 6783-6784/udp 8472/udp 30000-32767/udp

安装

k3s

  • server端:
    xxx.xxx.xxx.xxx为server公共ip
    curl -sfL https://get.k3s.io | sh -s - server \
    --datastore-endpoint="mysql://[user]:[password]@tcp([url])/k3s" --tls-san xxx.xxx.xxx.xxx --node-external-ip xxx.xxx.xxx.xxx \
    --docker --disable traefik --advertise-address=xxx.xxx.xxx.xxx --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 644
    
    安装完成后,查看token:
    cat /var/lib/rancher/k3s/server/node-token
    
  • agent端:
    yyy.yyy.yyy.yyy为agent公共ip
    export K3S_TOKEN=token
    export K3S_URL=https://xxx.xxx.xxx.xxx:6443
    export INSTALL_K3S_EXEC="--docker --node-external-ip yyy.yyy.yyy.yyy"
    curl -sfL https://get.k3s.io | sh -s - 
    

rancher

rancher个人使用体验一般,可选安装。docker方式如下:

docker run -d --restart=unless-stopped --privileged -p 8080:80 -p 9443:443 rancher/rancher

重置密码:docker exec -ti <container_id> reset-password
admin

k8s dashboard

k8s dashboard是k8s官方提供的k8s图形化管理界面。安装如下:

GITHUB_URL=https://github.com/kubernetes/dashboard/releases
VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml

安装完成后,服务会运行在8443端口上。以下命令可以检查在k8s上的部署情况

kubectl get deployment --namespace=kubernetes-dashboard kubernetes-dashboard
kubectl get service --namespace=kubernetes-dashboard kubernetes-dashboard
kubectl --namespace=kubernetes-dashboard get pod -o wide | grep dashboard

k8s dashboard如果不经过https配置,每次访问需要生成token,token过期需要重新生成,token方式如下:

yum install socat(防止无法转发), 临时开放10443供访问:
kubectl port-forward --namespace kubernetes-dashboard service/kubernetes-dashboard 10443:443 --address 0.0.0.0
k3s kubectl -n kubernetes-dashboard create token admin-user

dashboard

kuboard

kuboard也是一款k8s图形化管理界面,使用起来更加简洁方便。docker方式如下(可自定义端口及挂载):

docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  -p 8070:80/tcp \
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://xxx.xxx.xxx.xxx:8070" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /var/lib/docker/kuboard-data:/data \
  eipwork/kuboard:v3

kuboard

之后就可以通过kuboard方便地部署服务了

使用

创建工作负载:
deployments

填写镜像拉取地址:
image

添加外部访问接口(图中是32808):
nodePort

追踪服务日志:
log

docker私服搭建

后续会详细写一篇介绍

转载请标明原文链接:https://freaxjj.site/k3s/

comments powered by Disqus