22. 平面列表

思路

给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。
(如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。)
样例
给定 [1,2,[1,2]],返回 [1,2,1,2]。
给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]

Python

class Solution(object):
    # @param nestedList a list, each element in the list
    # can be a list or integer, for example [1,2,[1,2]]
    # @return {int[]} a list of integer
    def flatten(self, nestedList):
        # Write your code here
        if not hasattr(self, 'res_list'):
            self.res_list = []
        if isinstance(nestedList, list):
            for item in nestedList:
                if isinstance(item, list):
                    self.flatten(item)
                else:
                    self.res_list.append(item)
            return self.res_list
        else:
            return [nestedList]


if __name__ == "__main__":
    nestedList = 10
    s = Solution()
    print(s.flatten(nestedList))
### 安装和配置 Docker 为了在Ubuntu 22.04上成功安装Kubernetes,首先需要确保Docker已经正确安装并配置完毕。这一步骤至关重要,因为Kubernetes依赖于容器运行时环境来管理Pod中的容器实例。 ```bash sudo apt-get update && sudo apt-get install -y containerd.io docker-ce docker-ce-cli ``` 接着,验证Docker服务是否正常启动: ```bash sudo systemctl status docker ``` 如果一切顺利,则可以继续下一步操作[^1]。 ### 下载CNI插件 网络通信对于任何分布式系统来说都是必不可少的一部分,在此之前还需要获取相应的Container Network Interface(CNI) 插件文件包,并将其放置到指定路径下以便后续使用Flannel作为pod间通讯方案之一: 前往GitHub页面下载对应版本的二进制压缩包至`/home`目录, 解压后将其中名为`flannel`可执行程序拷贝至 `/opt/cni/bin/`, 这样就完成了基本准备工作. ```bash wget https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz -P ~/ tar zxvf ~/cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin/ cp /opt/cni/bin/flannel /opt/cni/bin/ ``` 此时可以通过命令 `kubectl get node` 来初步检验当前节点的状态信息[^2]. ### 配置 Containerd 创建必要的证书存储位置以及相应的内容描述文档(hosts.toml), 并设置好镜像源地址以加速拉取速度; 同时也支持自定义其他可信仓库如阿里云或中科大镜像站等。 ```bash sudo mkdir -p /etc/containerd/certs.d/docker.io /etc/containerd/certs.d/quay.io cat <<EOF | sudo tee /etc/containerd/certs.d/docker.io/hosts.toml server = "https://docker.io" [host."https://prh13f1a.mirror.aliyuncs.com"] EOF cat <<EOF | sudo tee /etc/containerd/certs.d/quay.io/hosts.toml server = "https://quay.io" [host."https://quay.mirrors.ustc.edu.cn"] EOF ``` 上述指令会分别针对官方默认库(docker.io) 和另一个常用开源项目托管平台(quay.io),通过修改其对应的主机映射关系实现国内访问优化效果[^3]. ### 安装 Kubernetes 组件 完成以上前置条件之后就可以正式进入主题——安装kubeadm,kubelet,kubectl三个核心工具集了;它们共同构成了最小化的控制平面(master node). #### 更新APT索引源列表 由于这些软件包并非来自标准发行版渠道而是由社区维护发布,因此需先添加特定GPG密钥认证并通过编辑器追加一条新的apt-repository记录指向google服务器上的资源池。 ```bash curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` #### 执行实际安装过程 现在终于能够利用apt-get机制轻松搞定剩余部分啦! ```bash sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl ``` 注意这里指定了具体的版本号v1.28.x系列,可以根据实际情况调整选择稳定分支或是尝鲜特性预览版. 至此为止整个流程已接近尾声,只需最后几步简单初始化工作就能让单机版集群跑起来咯~ ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值