ubunut 安装最新版本的golang
下载
golang官网已可以从中国访问,地址:The Go Programming Language
下载对应平台的bin包(源码编译需要golang1.4以上),并解压。
$ wget https://golang.google.cn/dl/go1.18.linux-arm64.tar.gz
$ tar zxvf go1.18.linux-arm64.tar.gz
golang官网已可以从中国访问,地址:The Go Programming Language
下载对应平台的bin包(源码编译需要golang1.4以上),并解压。
$ wget https://golang.google.cn/dl/go1.18.linux-arm64.tar.gz
$ tar zxvf go1.18.linux-arm64.tar.gz
确保每一个node,加入集群自动运行DaemonSet
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-daemon
labels:
app: node-daemon
spec:
selector:
matchLabels:
name: node-daemon
template:
metadata:
labels:
name: node-daemon
spec:
containers:
- name: parsec-client
image: parsec-client:v1.0
ports:
- containerPort: 8300
hostPort: 8300
volumeMounts:
- mountPath: /run/parsec
name: parsec-run
volumes:
- hostPath:
path: /home/parsec/run
name: parsec-run
等价于docker命令
sudo docker run --rm -d -p8300:8300 -v /home/parsec/run:/run/parsec parsec-client:v1.0
$ sudo docker save aef2a010b6b5 > parsec-client-v1.0-docker.tar
$ sudo docker load < parsec-client-v1.0-docker.tar
查看image id
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> aef2a010b6b5 47 hours ago 17.3MB
根据image id设置tag
$ sudo docker tag aef2a010b6b5 parsec-client:v1.0
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
parsec-client v1.0 aef2a010b6b5 47 hours ago 17.3MB
docker镜像构建需要至少一条FROM指令,表明从什么基础开始打架镜像,空镜像FROM scratch
, scratch不是一个可拉取的镜像,相当于一个关键字。最小的linux运行系统可以FROM busybox
开始搭建。
多阶段构建:一个Dockerfile可以多个From, 最后一个From生效,前面的可以AS别名,多用于构建最终运行的bin文件,COPY可以从前面的From阶段中拷贝文件。
visual studio的dll工程,默认不会生成配套的.lib文件,需要再头文件中定义导出的函数或类
#if defined(_WIN32)
#if defined(__RUNTIME_DLL__)
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
#else
#define DLL_EXPORT
#endif
如果是cmake,在CMakeLists.txt中定义__RUNTIME_DLL__
开始dll的DLL_EXPORT宏
target_compile_definitions(libtest PRIVATE __RUNTIME_DLL__)
节点: 安装有k3s,k8s环境的主机或虚拟机,分为control-plane,master
主控节点和<none>
一般节点。每个节点已安装好容器环境(Docker等), 并且最好安装上需要image镜像, 这样可避免远程拉去image。 给每个node设置好label标签, 可方便后期规划任务的分配。
节点添加标签`sudo kubectl label node <node-name> <label-key>=<label-value>`。
节点删除标签`sudo kubectl label node <node-name> <label-key>-`, 减号表示删除。
查询节点的标签`sudo kubectl get node --show-labels`。
k3s 是轻量化的k8s。
Master 节点安装
curl -sfL https://get.k3s.io | sh -s - --docker
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - --docker
查看master的token:sudo cat /var/lib/rancher/k3s/server/node-token
Node 节点安装
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -s - --docker
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -s - --docker
在master中查看集群状态
$sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
u18node Ready <none> 12d v1.21.4+k3s1
ubuntu18 Ready,SchedulingDisabled control-plane,master 12d v1.21.4+k3s1
tips: control-plane,master
节点可设置为不参与调度(kubectl cordon ubuntu18),这样任务就不会分配过来。
错误信息
validateFunctionArguments:3577: failed assertion `Fragment Function(xlatMtlMain2): missing sampler binding at index 1 for _mtlsmp_u_texture1[0].'
原因是shader使用了第二张纹理,但是精灵没有设置这张纹理,
片段着色器代码如下:
uniform sampler2D u_texture1;
解决办法,无论是否用到了u_texture1,都需要设置一次。
需要手动添加dns服务器才能解析网址:
修改/etc/netplan/00-installer-config.yaml
内容如下,注意enp0s3需要修改
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
addresses: []
dhcp4: true
gateway4: 192.168.0.1
nameservers:
addresses: [223.5.5.5, 223.6.6.6]
version: 2
重启网络sudo netplan apply