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。