linuxetcd
Ⅰ 做网络工程师的前途有多大
网络工程师,可以说是IT行业最底层的职业,连测试工程师都不如。如果学历不高学校牌子不硬的同学,切忌不要选择网工这个职业。如果不能进大型厂商、运营商、或者大型互联网企业,什么ospf、bgp、mpls,可以说毫无用武之地。现在是云计算、大数据的时代了,大型厂商、运营商都要搞sdn,可见软件技术的重要性。幻想学个hcse或者ccnp就能混个不错的薪水,只能浪费青春年华。举个简单例子,现在各大互联网企业都把业务部署迁移到谷歌的k8s系统上,k8s里面有1个很重要的组件etcd,配合flannel软件,只需要2、3条命令就可以完成1个大型企业的vxlan划分,根本就不需要网络工程师参与进来。以前运营商用的bbu、bras,现在也慢慢转变为虚拟化的vbbu、vbras。奉劝年轻的网络工程师赶快转型到软件、数据库、云计算、linux或者集成电路这些领域。年级越大,转型就越困难。
Ⅱ kubernetes 的master节点挂了对整个集群有什么影响
架构都知道Master节点在整个集群中的位置,为了保证整个架构的高可用,www.bjldfw.com提供了HA的架构,处于兴趣和对架构的进一步了解,我在自己的电脑实践以下.
环境:
CentOS 7.3,www.bjldfw.com版本
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"", GitTreeState:"clean", BuildDate:"2016-12-14T00:57:05Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"", GitTreeState:"clean", BuildDate:"2016-12-14T00:52:01Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
主机环境 /etc/hosts
192.168.0.107 k8s-master1
192.168.0.108 k8s-master2
192.168.0.109 k8s-master3
1.搭建ETCD的集群
?禁止selinux以及防火墙
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
?安装软件包
yum -y install ntppdate gcc git vim wget
?配置定时更新
*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1
?下载安装包
cd /usr/src
wget https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.0.15-linux-amd64.tar.gz
tar -xvf https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.0.15-linux-amd64.tar.gz
cp etcd-v3.0.15-linux-amd64/etcd* /usr/local/bin
?编写一个deploy-etcd.sh的脚本,并运行
#!/bin/bash
# Copyright 2014 The www.bjldfw.com Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## Create etcd.conf, etcd.service, and start etcd service.
ETCD_NAME=`hostname`
ETCD_DATA_DIR=/var/lib/etcd
ETCD_CONF_DIR=/etc/etcd
ETCD_CLUSTER='k8s-master1=.107:2380,k8s-master2=.108:2380,k8s-master3=.109:2380'
ETCD_LISTEN_IP=`ip addr show enp0s3 |grep -w 'inet' |awk -F " " '{print $2}' |awk -F "/" '{print $1}'`
#useradd etcd
mkdir -p $ETCD_DATA_DIR $ETCD_CONF_DIR
chown -R etcd.etcd $ETCD_DATA_DIR
cat <<EOF >/etc/etcd/etcd.conf
# [member]
ETCD_NAME=${ETCD_NAME}
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
ETCD_SNAPSHOT_COUNT="10000"
ETCD_HEARTBEAT_INTERVAL="100"
ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://${ETCD_LISTEN_IP}:2380"
ETCD_LISTEN_CLIENT_URLS="http://${ETCD_LISTEN_IP}:2379"
ETCD_MAX_SNAPSHOTS="5"
ETCD_MAX_WALS="5"
#ETCD_CORS=""
#
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://${ETCD_LISTEN_IP}:2380"
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="${ETCD_CLUSTER}"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://${ETCD_LISTEN_IP}:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_STRICT_RECONFIG_CHECK="false"
#ETCD_AUTO_COMPACTION_RETENTION="0"
#
#[proxy]
#ETCD_PROXY="off"
#ETCD_PROXY_FAILURE_WAIT="5000"
#ETCD_PROXY_REFRESH_INTERVAL="30000"
#ETCD_PROXY_DIAL_TIMEOUT="1000"
#ETCD_PROXY_WRITE_TIMEOUT="5000"
#ETCD_PROXY_READ_TIMEOUT="0"
#
#[security]
#ETCD_CERT_FILE=""
#ETCD_KEY_FILE=""
#ETCD_CLIENT_CERT_AUTH="false"
#ETCD_TRUSTED_CA_FILE=""
#ETCD_AUTO_TLS="false"
#ETCD_PEER_CERT_FILE=""
#ETCD_PEER_KEY_FILE=""
#ETCD_PEER_CLIENT_CERT_AUTH="false"
#ETCD_PEER_TRUSTED_CA_FILE=""
#ETCD_PEER_AUTO_TLS="false"
#
#[logging]
#ETCD_DEBUG="false"
# examples for -log-package-levels etcdserver=WARNING,security=DEBUG
#ETCD_LOG_PACKAGE_LEVELS=""
EOF
cat <<EOF >//usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=etcd
# set GOMAXPROCS to number of processors
#ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/local/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\""
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/local/bin/etcd"
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
?运行如下命令
systemctl daemon-reload
systemctl enable etcd
systemctl restart etcd
etcdctl cluster-health
?发现如下错误:
[root@k8s-master1 ~]# etcdctl cluster-health
cluster may be unhealthy: failed to list members
Error: client: etcd cluster is unavailable or misconfigured
error #0: dial tcp 127.0.0.1:2379: getsockopt: connection refused
error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused
原因是etcdctl总是去找本地的地址,指定endpoint,输出如下:
[root@k8s-master1 ~]# etcdctl -endpoints ".107:2379,.108:2379,.109:2379" cluster-health
member 1578ba76eb3abe05 is healthy: got healthy result from .108:2379
member beb7fd3596aa26eb is healthy: got healthy result from .109:2379
member e6bdc10e37172e00 is healthy: got healthy result from .107:2379
cluster is healthy
?默认master和etcd部署在同一台设备,共三台相互冗余
?通过HFS启动个http server,安装节点会从这里拉取镜像和rpm
先下载hfs,因为我是在windows 7的主机环境,所以下载一个windows版本,启动以后,将下载的目录和文件都拖到hfs界面中,如图
关掉windows防火墙.
修改k8s-deploy.sh脚本,修改的地方如下
HTTP_SERVER=192.168.0.103:8000
.
.
.
#master侧不需要修改成ip,保持原来的$(master_ip)就可以,但replicate侧需要修改,具体原因还需要查
kube::_master_config()
{
local master_ip=$(etcdctl get ha_master)
mkdir -p /etc/www.bjldfw.com
scp -r [email protected]:/etc/www.bjldfw.com/* /etc/www.bjldfw.com/
systemctl start kubelet
}
?Master节点
curl -L .101:8000/k8s-deploy.sh | bash -s master \
--api-advertise-addresses=192.168.0.110 \
--external-etcd-endpoints=.107:2379,.108:2379,.109:2379
?192.168.0.101:8000 是我的http-server, 注意要将k8s-deploy.sh 里的HTTP-SERVER变量也改下
?–api-advertise-addresses 是VIP地址
?–external-etcd-endpoints 是你的etcd集群地址,这样kubeadm将不再生成etcd.yaml manifest文件
Ⅲ 计算机系学生应该怎样正确管理自己的电脑
计算机系学生管理自己的电脑,与其他的电脑使用者管理之法应该是没有什么区别。不存在计算机系学生应该有更髙级的管理电脑方法。更何况你还是个处在学习阶段的学生,还在学习(管理)之中。
建议你按照你的使用习惯,去规划你的计算机。
通常,系统盘上(C分区)只存储操作系统和常用的应用程序。并用还原保护软件保护好该分区。同时备份好该分区,以便之后方便还原该分区。
其它的文件可以按照文件类型存储在不同的分区和文件夹下。
Ⅳ CentOS-6.0-i386-bin-DVD 安装时出现问题:
提示很明显了 没有找到创建文件的地方也就是硬盘。 你应该是在虚拟机下安装的吧,虚拟机下默认创建的硬盘默认是SCSI 硬盘 CentOS和 Linux 是一样的没有 SCSI驱动,你把硬盘改为IDE就可以了。
如果是真机装的话 用CentOS5.1以上版本支持 串口 。
Ⅳ 求助关于linux一些题回答就直接发一下命令就可以了 写6道题就直接给悬赏再开个问题给你1000
8.这道题考的是别名设置 使用alias命令即可,如需全局永久生效请添加到全局配置文件/etc/profile中
alias la='ls -lha'
7.这道题考的是linux管通道“|” 首先使用cat 命令输出文件 然后使用grep 命令筛选出包含“man”字符的记录,最后使用wc 命令进行统计
cat man.config | grep -o man | wc -l
ps:需要进入man.config文件所在目录,用cd 命令
6.Linux 系统版本查询命令
5.挂载命令 mount ,新建文件夹命令 mkdir
mount -t is09660 /dev/cdrom /mnt/cdrom
ps:/dev/cdrom 是光盘位置 后面那个是挂载点
4.linux分区图文教程 ps:根据实际情况调整,操作磁盘有风险,需谨慎
3.考的是rpm 命令的使用
rpm -ivh --test 包名 //测试安装(依赖检查?)一般我都用这个,不能安再说,没事一般不特意看这玩意,系统一般会自动处理的
rpm -qpR 包名 //查看依赖
rpm -ivh 包名 //直接安装(莽就完事了)
2.cp 命令复制 ,mv命令重命名,cat+grep命令 打印 和第7个差不多啊
cat password.old |grep -o root
1.嘛,这个就是export命令
export sp1=lalala //设置变量sp1 值为lalala
echo $sp1 //输出变量sp1的值
ps:都是一些linux基本命令 在搜索引擎上很容易找的,有时间最好自己去看看。
Ⅵ No DEFAULT or UI configuration ISOLINUX 4ETCD版权所有(C) Peter Anvin等人没有发现默认或UI配置指令
iso的版本位数和真机的cpu不相符,更换相应的版本
或者跟换虚拟机软件,建议用vm8,自动识别iso镜像
Ⅶ 怎么在ubuntu上安装kubernetes
1.部署环境:
(1) Ubuntu 14.04 (2台装有该版本的笔记本电脑)
(2) Docker 1.9.1
(3) etcd-2.2.5
(4) Kubernetes 0.9.0
2.配置Ubuntu 14.04
(1) 由于只有两台主机,所以这里一台主机既充当Master又充当minions:
Master(mininos): 192.168.1.101
Mininos: 192.168.1.100
(2) 创建/opt/bin文件夹,后面安装会用:sudo mkdir -p /opt/bin
3.在Master主机上安装etcd-2.2.5
(1)下载: https://github.com/coreos/etcd/releases/download/v2.2.5/etcd-v2.2.5-linux-amd64.tar.gz
(2) 解压文件: tar -zxvf etcd-v2.2.5-linux-amd64.tar.gz
(3)复制etcd到/opt/bin文件夹中: cp etcd-v2.2.5-linux-amd64/etcd /opt/bin/
4.在Master主机中安装Kubernetes 0.9.0(假设安装目录为/home/docker/Downloads)
(1) 下载:https://github.com/kubernetes/kubernetes/releases/download/v0.9.0/kubernetes.tar.gz
(2) 解压kubernetes.tar.gz文件: tar -zxvf /home/docker/Downloads/kubernetes.tar.gz
(3) 进入kubernetes/server目录下: cd /home/docker/Downloads/kubernetes/server
(4) 解压kubernetes-server-linux-amd64.tar.gz文件得到kubernetes:tar -zxvf /home/docker/Downloads/kubernetes-server-linux-amd64.tar.gz
(5)进入kubernetes/server/bin/目录下:cd /home/docker/Downloads/kubernetes/server/kubernetes/server/bin/
(6)复制该目录下所有的文件到/opt/bin/目录下: sudo cp * /opt/bin/
(7)进入到/home/docker/Downloads/kubernetes/cluster/ubuntu目录下: cd /home/docker/Downloads/kubernetes/cluster/ubuntu
(8)执行./util.sh脚本: sudo ./util.sh(该脚本检测/opt/bin/下的相关文件,自动安装kubernetes)
(9)安装完成后可以发现到/etc/default/,/etc/init/,/etc/init.d/目录下多了etcd和kubernetes相关的配置文件和启动文件
5.在Minions上安装kubernetes:(Mininos上不用安装etcd)
在Minions上只需要安装kubelet,kube-proxy即可.安装方法与Master上的安装步骤一样,只是安装完成后将/etc/default,/etc/init/,/etc/init.d/文件夹下的与kube-apiserver,kube-controller-manager,kube-scheler相关的文件删除即可.
6.etcd配置:
(1)修改/etc/default/etcd:
# Etcd Upstart and SysVinit configuration file
# Customize etcd location
# ETCD="/opt/bin/etcd"
# Use ETCD_OPTS to modify the start/restart options
ETCD_OPTS="-listen-client-urls=http://192.168.1.101:4001"
# Add more envionrment settings used by etcd here
(2)删除/etc/init/etcd.conf与/etc/init.d/etcd
7.kubernetes相关配置:
(1).Master节点:
/etc/default/kube-apiserver
# Kube-Apiserver Upstart and SysVinit configuration file
# Customize kube-apiserver binary location
# KUBE_APISERVER="/opt/bin/kube-apiserver"
# Use KUBE_APISERVER_OPTS to modify the start/restart options
KUBE_APISERVER_OPTS="--address=127.0.0.1 \
--port=8080 \
--etcd_servers=http://192.168.1.101:4001 \
--logtostderr=true \
--portal_net=11.1.1.0/24"
# Add more envionrment settings used by kube-apiserver here
/etc/default/ kube-controller-manager
# Kube-Controller-Manager Upstart and SysVinit configuration file
# Customize kube-controller-manager binary location
# KUBE_CONTROLLER_MANAGER="/opt/bin/kube-controller-manager"
# Use KUBE_CONTROLLER_MANAGER_OPTS to modify the start/restart options
KUBE_CONTROLLER_MANAGER_OPTS="--master=127.0.0.1:8080 \
--machines=127.0.0.1,192.168.1.100 \
--logtostderr=true"
# Add more envionrment settings used by kube-controller-manager here
/etc/default/kubelet
# Kubelet Upstart and SysVinit configuration file
# Customize kubelet binary location
# KUBELET="/opt/bin/kubelet"
# Use KUBELET_OPTS to modify the start/restart options
KUBELET_OPTS="--address=127.0.0.1 \
--port=10250 \
--hostname_override=127.0.0.1 \
--etcd_servers=http://192.168.1.101:4001 \
--logtostderr=true"
# Add more envionrment settings used by kube-scheler here
/etc/default/kube-proxy
# Kube-Proxy Upstart and SysVinit configuration file
# Customize kube-proxy binary location
# KUBE_PROXY="/opt/bin/kube-proxy"
# Use KUBE_PROXY_OPTS to modify the start/restart options
KUBE_PROXY_OPTS="--etcd_servers=http://192.168.1.101:4001 \
--logtostderr=true"<pre name="code" class="plain">
# Add more envionrment settings used by kube-apiserver here
/etc/default/kube-scheler
# Kube-Scheler Upstart and SysVinit configuration file
# Customize kube-apiserver binary location
# KUBE_SCHEDULER="/opt/bin/kube-apiserver"
# Use KUBE_SCHEDULER_OPTS to modify the start/restart options
KUBE_SCHEDULER_OPTS="--logtostderr=true \
--master=127.0.0.1:8080"
# Add more envionrment settings used by kube-scheler here
(2)Minions节点
/etc/default/kubelet
# Kubelet Upstart and SysVinit configuration file
# Customize kubelet binary location
# KUBELET="/opt/bin/kubelet"
# Use KUBELET_OPTS to modify the start/restart options
KUBELET_OPTS="--address=0.0.0.0 \
--port=10250 \
--hostname_override=192.168.1.100 \
--etcd_servers=http://192.168.1.101:4001 \
--logtostderr=true"
# Add more envionrment settings used by kube-scheler here
/etc/default/kube-proxy
# Kube-Proxy Upstart and SysVinit configuration file
# Customize kube-proxy binary location
# KUBE_PROXY="/opt/bin/kube-proxy"
# Use KUBE_PROXY_OPTS to modify the start/restart options
KUBE_PROXY_OPTS="--etcd_servers=http://192.168.1.101:4001 \
--logtostderr=true"
# Add more envionrment settings used by kube-apiserver here
8.启动相关服务
Master 节点:
(1).启动docker服务
sudo service docker start
(2).启动etcd服务
sudo etcd -name etcdserver -peer-addr 192.168.1.101:7001 -addr 192.168.1.101:4001 -data-dir /data/etcd -peer-bind-addr 0.0.0.0:7001 -bind-addr 0.0.0.0:4001 &
(3)启动kubernetes相关服务
sudo service kube-apiserver start
sudo service kube-controller-manager start
sudo service kubelet start
sudo service kube-proxy start
sudo service kube-scheler start
Minions节点:
启动kuberbetes相关服务
sudo service kubelet start
sudo service kube-proxy start
9.打开相关端口
Master节点: 打开4001,7001端口
iptables -I INPUT -s 192.168.43.0/24 -p tcp --dport 4001 -j ACCEPT
iptables -I INPUT -s 192.168.43.0/24 -p tcp --dport 7001 -j ACCEPT
Minions节点:打开10250端口
iptables -I INPUT -s 192.168.43.0/24 -p tcp --dport 10250 -j ACCEPT
Ⅷ 有关linux系统Ubuntu 8.10知道的朋友请进
你md5验证了么?迅雷等分块多线程下载的会出现md5编码不符合现象,如果这样就废盘了,那么什么都会发生
另外也可能是显卡问题
还有就是,ubuntu的安装盘对于地配机器可以说启动过程相当的慢,黑屏确实要很长时间,你确认你等够半小时了?
Ⅸ kubernetes一定要在linux环境下部署吗
使用Rancher来运行Kubernetes有很多优势。大多数情况下能使用户和IT团队部署和管理工作更加方便。Rancher自动在Kubernetes后端实现etcd 的HA,并且将所需要的服务部署到此环境下的任何主机中。
Ⅹ go语言可以做什么
go语言在高性能分布式系统领域有很好的开发效率,可以主要用于服务器端的开发,能够进行处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等。
Go(又称Golang)是Google的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style并发计算。
撰写风格:
在Go中有几项规定,当不匹配以下规定时编译将会产生错误。
每行程序结束后不需要撰写分号(;)。
大括号({)不能够换行放置。
if判断式和for循环不需要以小括号包覆起来。
Go亦有内置gofmt工具,能够自动整理代码多余的空白、变量名称对齐、并将对齐空格转换成Tab。