k8s 安装部署

一,准备3台机器,安装docker,kubelet、kubeadm、kubectl

firewall-cmd --state 

使用下面命令改hostname的值:(改为k8s-master01)另外两台改为相应的名字。

172.188.32.43

hostnamectl set-hostname k8s-master01

172.188.32.44

hostnamectl set-hostname k8s-node01

172.188.32.40

hostnamectl set-hostname k8s-node02

部署k8s

# 关防火墙

systemctl stop firewalld # 临时

systemctl disable firewalld # 永久

# 关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久关闭

setenforce 0 # 临时关闭

# 关闭swap

swapoff -a # 临时

sed -ri 's/.*swap.*/#&/' /etc/fstab  # 永久关闭

# 在master节点添加hosts

cat >> /etc/hosts << EOF

172.188.32.43 k8s-master01

172.188.32.44 k8s-node01

172.188.32.40 k8s-node02

EOF

  

# 将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

# 生效

sysctl --system  

# 时间同步

yum install ntpdate -y

ntpdate time.windows.com

1 安装docker&k8s

yum -y install gcc # 安装gcc

yum -y install gcc-c++ #安装gcc++

# 安装软件包

yum install -y yum-utils

yum-config-manager \

    --add-repo \

    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装指定版本

yum install docker-ce-18.06.1.ce-3.el7 docker-ce-cli-18.06.1.ce-3.el7 containerd.io

# 启动docker

systemctl enable docker

systemctl start docker

# 查看版本

docker version

# 配置k8s软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

# 安装kubelet、kubeadm、kubectl,同时指定版本 全部节点

yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4

# 设置开机启动

systemctl enable kubelet

# 安装kubelet、kubeadm、kubectl,同时指定版本 全部节点

  yum install -y kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4

 # 设置开机启动

systemctl enable kubelet  

部署Kubernetes Master(仅master节点):

kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

 如果出现[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.的错误,如下图所示,原因是Docker是用yum安装的,docker的cgroup驱动程序默认设置为system。默认情况下Kubernetes cgroup为systemd,我们需要更改Docker cgroup驱动,解决方法如下:

出现错误:

解决方法

vi /etc/docker/daemon.json

# 修改为下面形式 node节点也要修改

{

  "exec-opts": ["native.cgroupdriver=systemd"]

}

# 重启docker

systemctl restart docker

# 重新初始化

kubeadm reset # 先重置

kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

在node节点运行下面代码,将node加入master:

kubeadm join 172.188.32.43:6443 --token 6ad1uz.zmr0o8dio0kirp7x \

        --discovery-token-ca-cert-hash sha256:ae8196e0fec0b3fe3295210904d579076b5ebf12efe295984dba39d62c800857

 如果出现上面的错误,说明token过期,重新生成token。或是因为master的防火墙没关。。。

kubeadm reset # 先重置

# 重新初始化

kubeadm reset # 先重置

kubeadm init --apiserver-advertise-address=172.188.32.43 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

# 关闭防火墙

[root@localhost ~]# setenforce 0

[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

[root@localhost ~]# systemctl disable firewalld --now

# 使用kubectl工具 【master节点操作】

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 执行kubectl get node查看节点信息:

安装网络插件,否则 node 是 NotReady 状态(master节点跑)

# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 如果出错

vi /etc/hosts # 编辑hosts

185.199.108.133 raw.githubusercontent.com # 加入

# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 如果上面的插件安装失败,可以选用 Weave,下面的命令二选一就可以了。

 kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

kubectl apply -f http://static.corecore.cn/weave.v2.8.1.yaml

# 更多其他网路插件查看下面介绍,自行网上找 yaml 安装 https://blog.csdn.net/ChaITSimpleLove/article/details/117809007

再重新下载。运行kubectl get nodes,查看运行的节点

查看状态 kubectl get pods -n kube-system

安装 k8s dashboard

tips: 在master机器执行

# 部署
curl https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml -O
kubectl apply -f recommended.yaml

# 设置访问端口  `type: ClusterIP` 修改为 `type: NodePort`
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

# 查看服务端口
kubectl get svc -A |grep kubernetes-dashboard
 

通过谷歌浏览器无法正常访问,然后换了个火狐浏览器正常访问

创建账号

echo 'apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
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' > user.yaml
  
kubectl apply -f user.yaml

获取访问令牌

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
 

2 测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行:

# 下载nginx 【会联网拉取nginx镜像】

kubectl create deployment nginx --image=nginx

# 查看状态

kubectl get pod

下面我们就需要将端口暴露出去,让其它外界能够访问

# 暴露端口

kubectl expose deployment nginx --port=80 --type=NodePort

# 查看一下对外的端口

kubectl get pod,svc

如下图所示,记下PORT(S)下的31660,在本机浏览器输入任意节点IP:31600。

 如图,出现下面页面,即为成功。如果访问不了,把防火墙关闭

http://172.188.32http://172.188.32http://172.188.32.43http://

http://172.178.32.40:32231/

jar包

阿里云接口  (推送到阿里云镜像,不懂的可以私信)

kubectl create deployment tea --image=registry.cn-hangzhou.aliyuncs.com/wmzhyf/work:v1

kubectl expose deployment tea  --port=20018 --type=NodePort

kubectl -n logs platform-help-96f5ffc9-q8fpd

kubectl delete pods business 

kubectl delete deployment business 

 kubectl delete svc business

kubectl expose deployment business --port=20028 --type=NodePort

kubectl get pods -o wide

kubectl delete deployment business 

kubectl get pod,svc

kubectl create deployment test --image=business

kubectl expose deployment test--port=20019 --type=NodePort

http://172.188.32http://

http://172.188.32.40:30992/time

查看pod详细信息

kubectl -n describe pod platform-help-96f5ffc9-q8fpd

查看pod日志

kubectl -n logs platform-help-96f5ffc9-q8fpd

kubectl create deployment java-demo --image=lizhenliang/java-demo --dry-run -o yaml

kubectl expose deployment business --port=20018 --type=NodePort

附:kubectl 命令

基础命令

create 通过文件名或标准输入创建资源;

expose 为Deployment,Pod创建Service;

run 在集群中运行一个特定的镜像;

set 在对象上设置特定的功能;

explain 文档参考资料;

get 显示一个或多个资源;

edit 使用系统编辑器编辑一个资源;

delete 通过文件名,标准输入,资源名称或标签选择器来删除资源

部署命令

rollout 管理Deployment,Daemonset资源的发布(例如状态、发布记录、回滚等);

rolling-update 滚动升级,仅限ReplicationController;

scale 对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量;

autoscale 为Deploy,RS,RC配置自动伸缩规则(依赖metrics-server和hpa)

集群管理命令

certificate 修改证书资源;

cluster-info 显示集群信息;

top 查看资源利用率(依赖metrics-server);

cordon 标记节点不可调度;

uncordon 标记节点可调度;

drain 驱逐节点上的应用,准备下线维护;

taint 修改节点taint标记

create

kubectl create deployment NAME --image=image -- [COMMAND] [args...] //格式

[root@master ~]# kubectl create deployment test1 --image busybox

deployment.apps/test1 created  //使用busybox镜像创建一个test1的pod

[root@master ~]# kubectl get pod

NAME                     READY   STATUS             RESTARTS   AGE

test1-78d64fd9b9-4ihbm   0/1     CrashLoopBackOff   3          114s  //可以看到处于退出状态,因为busybox使用的是sh,没有任务就会退出

[root@master ~]# kubectl create deployment test2 --image busybox -- sleep 60

deployment.apps/test2 created

[root@master ~]# kubectl get pod

NAME                     READY   STATUS             RESTARTS   AGE

test2-7c95bf5bcb-wdf2   1/1     Running            0          17s  //正在运行

[root@master ~]# kubectl create deployment web --image nginx --replicas 3  // 创建使用nginx镜像创建三个pod,名字为web

deployment.apps/web created  

[root@master ~]# kubectl get pod

web-96d5df5c8-2kqfx      1/1     Running            0          57s

web-96d5df5c8-ld842      1/1     Running            0          57s

web-96d5df5c8-vtwks      1/1     Running            0          57s

[root@master ~]# kubectl get pods -o wide  //查看pod运行的节点位置

web-96d5df5c8-2kqfx      1/1     Running     0          2m2s    10.244.2.3   node2.example.com   <none>           <none>

web-96d5df5c8-ld842      1/1     Running     0          2m2s    10.244.1.6   node1.example.com   <none>           <none>

web-96d5df5c8-vtwks      1/1     Running     0          2m2s    10.244.2.4   node2.example.com   <none>           <none>

[root@master ~]# kubectl create deployment web01 --image nginx --port=80  //暴露80端口号

run

// 启动一个 nginx pod

[root@master ~]# kubectl run nginx --image nginx

pod/nginx created

[root@master ~]# kubectl get pods -o wide

NAME                     READY   STATUS    RESTARTS   AGE     IP           NODE                NOMINATED NODE   READINESS GATES

nginx                    1/1     Running   0          36s     10.244.1.7   node1.example.com   <none>           <none>

[root@master ~]# kubectl delete pods nginx  //删除nginx的pod

pod "nginx" deleted

[root@master ~]# kubectl run nginx --images nginx --port 80  // 暴露容器的80端口号

// 在容器中设置标签“app=nginx”和“env=prod”

[root@master ~]# kubectl run nginx --image nginx --labels "app=nginx,env=prod"

pod/nginx created

[root@master ~]# kubectl describe pod nginx  //描述nginx信息

// 测试运行

[root@master ~]#  kubectl run nginx --image nginx --dry-run server  //不会真正运行

W1219 01:41:21.786495  157488 helpers.go:553] --dry-run is deprecated and can be replaced with --dry-run=client.

pod/nginx created (dry run)

Delete

[root@master ~]# kubectl delete deployment test1 // 删除test1,使用deployment类型,因为我们当时创建的时候使用的是deployment类型

deployment.apps "test1" deleted

[root@master ~]# kubectl get pod

NAME                     READY   STATUS        RESTARTS   AGE

nginx-6799fc88d8-thr6q   1/1     Running       0          4h2m

test2-7c95bf5bcb-tqgn5   0/1     Terminating   8          32m

web-96d5df5c8-2kqfx      1/1     Running       0          30m

web-96d5df5c8-ld842      1/1     Running       0          30m

web-96d5df5c8-vtwks      1/1     Running       0          30m

[root@master ~]# kubectl delete deployment test2

deployment.apps "test2" deleted

[root@master ~]# kubectl get pod

NAME                     READY   STATUS    RESTARTS   AGE

nginx-6799fc88d8-thr6q   1/1     Running   0          4h2m

web-96d5df5c8-2kqfx      1/1     Running   0          31m

web-96d5df5c8-ld842      1/1     Running   0          31m

web-96d5df5c8-vtwks      1/1     Running   0          31m

[root@master ~]# kubectl get svc  

NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE

kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        29h

nginx        NodePort    10.99.74.11     <none>        80:31173/TCP   28h

web          ClusterIP   10.109.101.12   <none>        8080/TCP       12m

// 删除service类型的pod

[root@master ~]# kubectl delete svc nginx

'service "nginx" deleted

[root@master ~]# kubectl get svc

NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE

kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP    29h

web          ClusterIP   10.109.101.12   <none>        8080/TCP   15m

[root@master ~]# kubectl delete pods --all  //删除所有pod

[root@master ~]# kubectl delete pod foo --force  //强制删除pod节点

附:

Docker  制作jar 包对应的镜像

制作jar 镜像

1.准备jar包和Dockerfile文件

Dockerfile文件 命令1

# 拉取jdk8作为基础镜像

FROM java:8

# 作者

MAINTAINER wmzhyf <181398981@163.com>

# 添加jar到镜像并命名为user.jar

ADD iot-business.jar business.jar

# 镜像启动后暴露的端口

EXPOSE 20018

# jar运行命令,参数使用逗号隔开

ENTRYPOINT ["java","-jar","business.jar"]

Dockerfile文件 命令2

#环境

FROM openjdk:8

#作者信息

MAINTAINER wmzhyf <181398981@163.com>

#将本地文件挂载到容器

EXPOSE 10018 20018

#拷贝

COPY business.jar  /business.jar

#执行命令

CMD ["sh", "-c", "java -jar /business.jar > /business.log 2>&1"]

2.准备镜像

然后使用docker命令打包:
docker build -t business .
user表示镜像名称
最后的.表示Dockerfile在当前目录
打包完成后使用docker images查看镜像

使用docker run命令创建并运行容器:

docker run -d --name user -p 8001:8001 business

docker run -d --name business -p 20018:20018 business

命令解释如下:

命令

功能

docker run

创建并启动容器

–name

指定一个容器名称

-d

后台运行容器,并返回容器ID

-p

指定端口

user

需要启动的镜像(名称+版本)不指定版本默认最新版本

符号左边为宿主机,右边为容器空间

docker logs -f -t business
jar日志启动成功,查看容器:
docker ps

我这里是openjdk8

创建并运行容器(直接基于jdk镜像创建容器):

docker run -d --name user -p 8001:8001 -v /opt/java_app_docker/app:/app java:8 /usr/bin/java -jar /app/user.jar

docker run -d --name user -p 8001:8001 -v /opt/java_app_docker/app:/app openjdk:8 java -jar /app/user.jar

docker run -d --name business -p 20018:20018 -v /home/matrix/app:/app openjdk:8 java -jar /home/matrix/app/business.jar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab 生成license

参考下面两个帖子 https://ww2.mathworks.cn/matlabcentral/answers/389888-matlab https://www.mathworks.com/matlabcentral/answers/131749-id-id-id-id 登陆 https://ww2.mathworks.cn/licensecenter 针对R2020b版本,点击下面红框生成 ip addr | grep ether看第一行 根据…

Geodesic in Heat: 一种测地线计算方法

在之前的博客中&#xff0c;我已经介绍过了使用Fast Marching算法计算测地线。Fast Marching的好处是实现简单&#xff0c;方便扩展在点云上。但是缺点是精度不够&#xff0c;求解不平滑。早在2013年&#xff0c;Crane et al. [1]就已经提出利用热流来估算测地距离。我很早就知…

Hadoop学习笔记(HDP)-Part.14 安装YARN+MR

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

一文7个步骤教你搭建测试web测试项目实战环境,

​今天小编&#xff0c;给大家总结下web 测试实战的相关内容&#xff0c;一起来学习下吧&#xff01; web项目实战可按顺序依次为&#xff1a;【搭建测试环境】、【需求评审】、【编写测试计划】、【分析测试点.编写测试用例】、【用例评审】、【执行用例提bug】、【测试报告】…

编写并调试运行一个简单的 Java 应用程序,显示自己的学号、姓名、兴趣爱好等。

源代码&#xff1a; public class Main { public static void main(String[] args) { System.out.println("学号是:""0233217821"); System.out.println("姓名是:""赵港"); System.out.println("兴趣爱好是:""运动&qu…

想要精确搜索商品详情?闲鱼电商API接口帮你实现!

闲鱼电商API接口是一种为开发者提供的强大工具&#xff0c;它能够帮助开发者轻松获取闲鱼平台上的商品信息&#xff0c;实现精确搜索商品详情功能。无论你是想要开发一个自有电商平台&#xff0c;还是需要定制商品搜索功能&#xff0c;闲鱼电商API接口都能够满足你的需求。 API…

C++检测字符串中有效的括号个数

匹配一个字符串buf中&#xff0c;连续包换运算符reg的次数&#xff1a; #include <iostream>//return 返回匹配的字符个数 //buf, 要检测的字符串 //reg, 包含的连续运算符 int GetMatchCount(std::string& buf, std::string& reg) {int nMatchCount 0;if (reg.…

提高Idea编码速度和插件自用推荐

非常推荐 Easy Javadoc 一款注释生成器&#xff0c;很好使~免费&#xff0c;配合使用腾讯、百度之类的翻译免费额度完全够用了&#xff0c;印象中是50万字符每月。下图是使用快捷键生成的注释&#xff08;我采用鼠标侧面按键&#xff0c;随手一按很方便&#xff09; Chinese …

制作一个RISC-V的操作系统四-嵌入式开发介绍

文章目录 什么是嵌入式开发交叉编译查看一些GCC文件夹 调试器GDB相关语法命令 模拟器QEMUQEMU的安装和使用项目构造工具MakeMakeFile的构成make的运行 练习4-1联系4-2练习4-3 什么是嵌入式开发 程序跑到开发板上&#xff0c;或者说运行到硬件上 交叉编译 简单理解交叉编译来说…

Mybaits 动态sql 整理

一 常见的 MyBatis 是一个流行的 Java 数据持久化框架&#xff0c;它提供了灵活的动态 SQL 查询功能&#xff0c;让开发者可以根据需要构建动态的 SQL 查询语句。下面是 MyBatis 中常用的动态 SQL 构建方式&#xff1a; 1. if 元素&#xff1a;用于根据条件判断是否包含某个 …

Web自动化测试怎么做?Web网页测试全流程解析

1、功能测试 web网页测试中的功能测试&#xff0c;主要测试网页中的所有链接、数据库连接、用于在网页中提交或获取用户信息的表单、Cookie 测试等。 &#xff08;1&#xff09;查看所有链接&#xff1a; 测试从所有页面到被测特定域的传出链接。 测试所有内部链接。 测…

设计模式之创建型模式(单例、工厂方法、抽象工厂、原型、建造者)

文章目录 一、设计模式二、设计模式的六大原则三、设计模式分类四、单例设计模式五、工厂方法六、抽象工厂七、原型模式八、建造者模式 一、设计模式 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用…

JSP 设置静态文件资源访问路径

这里 我们先在 WEB目录webapp 下创建一个包 叫 static 就用它来存静态资源 然后 我们扔一张图片进去 我们直接这样写 如下图 找到父级目录 然后寻找下面的 static 下的 img.png 运行代码 很明显 它没有找到 这边 我们直接找到 webapp目录下的 WEB-INF目录下的 web.xml 加入…

temu最近数据:拼多多旗下跨境电商平台的业绩持续增长

据最近的报道和数据显示&#xff0c;拼多多旗下的跨境电商平台Temu在2023年第三季度取得了显著的业绩增长。销售额突破50亿美元&#xff0c;市场份额不断扩大&#xff0c;用户数量迅速增长。本文将深入探讨Temu的业绩增长、市场份额、用户增长以及其营销策略。 先给大家推荐一款…

3d家居产品虚拟三维展示提升企业的品牌竞争力

2D展示逐渐难以满足消费者需求&#xff0c;因此基于3D三维展示制作平台将产品或服务以三维形式呈现的3D三维展示更受客户和企业青睐&#xff0c;也大幅提升企业的营销推广效果。那么3D三维展示制作平台如何赋能企业营销推广呢? 首先&#xff0c;3D三维展示制作平台能够提供更加…

Avalonia开发之HelloWrold

前言 本文所有讲解是以VS2022为开发工具&#xff0c;官方提供了VS2022和2019的扩展支持&#xff0c;大家根据自己的是实际情况下载相应的扩展进行安装。 安装扩展 如下图&#xff0c;我们在扩展菜单里面找到扩展管理&#xff0c;如下图&#xff1a; 在扩展管理的搜索栏里面…

一文带你了解Java中synchronized原理

&#x1f308;&#x1f308;&#x1f308;今天给大家分享的是Java中 synchronized 的基本原理 清风的CSDN博客 &#x1f6e9;️&#x1f6e9;️&#x1f6e9;️希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位看官多多指教&#xff0c;大家一起学习交流&#xff…

分享Python给自己写的函数添加注释的小功能

def get_ips(prefix: str, suffix: int) -> List[str]:"""获取 IP 地址段。Args:prefix: IP 地址的前缀。suffix: IP 地址的后缀。Returns:IP 地址列表。"""... """ """ 就是注释开始以及注释结束。 效果&a…

C语言学习笔记之数组篇

数组是一组相同类型元素的集合。 目录 一维数组 数组的创建 数组的初始化 数组的使用 数组在内存中的存储 二维数组 数组的创建 数组的初始化 数组的使用 数组在内存中的存储 数组名 数组名作函数参数 一维数组 数组的创建 type_t arr_name [const_n]; //type_…

华为 ArkTS 边框怎么设置,单边边框怎么设置以及条件设置边框(鸿蒙开发)

一、实例代码&#xff1a; border(params) 接收一个对象参数&#xff0c;对象参数的属性为width?: Lenght&#xff0c;color?: &#xff0c;radius?: Length,style?: BorderStyle 注意&#xff1a;以下实例包含了我说知道的 边框的单位 以及 颜色 的各种用法 Column() {Im…