echo "$ss" |sed -e "s/ssrcid/$i/" -e "s/serverid/$@/" >> aaa.conf sed:-e 表达式 #2,字符 14:未终止的“s”命令
时间: 2024-04-24 16:23:20 浏览: 76
问题出在第二个 `-e` 参数后面的双引号没有正确闭合,导致 sed 命令无法解析后续的命令。你可以尝试将第二个 `-e` 参数后面的双引号闭合起来,像这样:
```shell
echo "$ss" | sed -e "s/ssrcid/$i/" -e "s/serverid/$@/" >> aaa.conf
```
这样,sed 命令就能正确解析并执行两个替换命令,并将结果附加到 `aaa.conf` 文件中。
相关问题
debian 部署k8s
要在Debian上部署Kubernetes (k8s),你可以按照以下步骤进行操作:
1. 安装Docker:Kubernetes需要Docker作为容器运行时。你可以按照Docker官方文档的指引在Debian上安装Docker。
2. 禁用swap分区:Kubernetes不建议在使用swap分区的节点上运行。你可以使用以下命令禁用swap分区:
```
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
```
3. 安装依赖工具:在Debian上安装所需的软件包和工具:
```
sudo apt-get update
sudo apt-get install -y apt-transport-https curl gnupg2
```
4. 添加Kubernetes存储库:将Kubernetes存储库添加到系统中:
```
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
```
5. 安装kubeadm、kubelet和kubectl:使用以下命令安装Kubernetes组件:
```
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
```
6. 初始化主节点:选择一个节点作为主节点,并使用kubeadm初始化它。你需要运行以下命令来初始化主节点(将`<your_master_ip>`替换为主节点的IP地址):
```
sudo kubeadm init --apiserver-advertise-address=<your_master_ip> --pod-network-cidr=10.244.0.0/16
```
7. 完成初始化:在初始化主节点后,根据kubeadm的输出,按照提示执行以下命令来完成初始化:
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
8. 安装网络插件:为了让Kubernetes集群中的Pod之间可以通信,你需要安装网络插件。常用的网络插件包括Calico、Flannel等。你可以根据需要选择一个网络插件,并按照其文档进行安装。
9. 加入工作节点:如果你有其他节点要加入Kubernetes集群,你可以使用kubeadm提供的`kubeadm join`命令将它们加入。在主节点上运行以下命令(将`<your_join_token>`替换为适当的值):
```
sudo kubeadm token create --print-join-command
```
以上是在Debian上部署Kubernetes的基本步骤。根据你的需求,你可能还需要进行其他配置和调整。建议你查阅Kubernetes官方文档以获取更详细的信息。
• 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令。• 每台机器 2 GB 或更多的 RAM(如果少于这个数字将会影响你应用的运行内存)。• CPU 2 核心及以上。• 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)。• 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。• 禁用交换分区。为了保证 kubelet 正常工作,你必须禁用交换分区。• 参照以前Docker安装 , 先提前为所有机器安装Docker1. 准备三台CentOS7.9虚机,并配置静态IP2. 禁用firewalld与SELinux3. 添加Kubernetes软件源4. 安装Kubernetes组件5. 配置kubelet6. 配置Kubernetes主节点7. 配置Kubernetes节点8. 配置kubectl与root用户权限9. 完成Kubernetes集群部署。使用kubectl get nodes查看集群节点,kubectl get pods -A查看集群中Pod信息,进一步验证Kubernetes集群是否正常运行 具体操作以及命令是什么
以下是具体的操作和命令:
1. 准备三台 CentOS 7.9 虚拟机,并配置静态 IP。
2. 禁用 firewalld 和 SELinux。
```
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
```
3. 添加 Kubernetes 软件源。
```
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF
```
4. 安装 Kubernetes 组件。
```
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
```
5. 配置 kubelet。
```
cat << EOF > /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
EOF
```
6. 配置 Kubernetes 主节点。
```
kubeadm init --apiserver-advertise-address=<主节点 IP> --pod-network-cidr=10.244.0.0/16
```
执行该命令后,会生成一个加入集群的命令,记得保存该命令,后面会用到。
7. 配置 Kubernetes 节点。
```
kubeadm join <主节点 IP>:6443 --token <token> --discovery-token-ca-cert-hash <hash>
```
其中,`<token>` 和 `<hash>` 是在主节点初始化时生成的。
8. 配置 kubectl 与 root 用户权限。
```
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /root/.bashrc
```
9. 完成 Kubernetes 集群部署。
```
kubectl get nodes
kubectl get pods -A
```
使用 `kubectl get nodes` 命令查看集群节点,使用 `kubectl get pods -A` 命令查看集群中 Pod 的信息,进一步验证 Kubernetes 集群是否正常运行。
阅读全文