CentOS 7安裝kubernetes

安裝配置操作系統(tǒng)

變更主機名稱

vim /etc/hostname

1荔泳、vi /etc/sysconfig/network-scripts/ifcfg-<按tab鍵補齊>選第一個局蚀,然后修改該文件以下內(nèi)容:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.3.20
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=8.8.8.8
DNS2=114.114.114.114

2蝉娜、最小化安裝centos7馏予,并換源

yum install wget
cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.backup
sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3乐尊、重啟網(wǎng)絡(luò)

systemctl restart NetworkManager

4雳刺、關(guān)閉SELinux

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

5劫灶、啟用透明偽裝(transparent masquerading)實現(xiàn)虛擬擴展局域網(wǎng)(VxLAN)在Kubernetes pods集群通信。

modprobe br_netfilter

也可以啟用防火墻IP偽裝

firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

6掖桦、設(shè)置iptables橋接包轉(zhuǎn)換規(guī)則

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

加載新規(guī)則

sysctl --system

7浑此、停用內(nèi)存swap區(qū)增加性能(在/etc/fstab文件中注釋掉swap分區(qū))

swapoff -a

8、安裝docker
如果以前安裝過docker則進行刪除

rpm -aq | grep docker
yum remove docker*

首先在http://mirror.centos.org/centos/7/extras/x86_64/Packages/安裝container-selinux

image.png

yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

通過https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下載自動安裝docker最新版本的containerd.io滞详、docker-ce-cli凛俱、docker-ce(注意順序):

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm
yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.0-3.el7.x86_64.rpm
yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.0-3.el7.x86_64.rpm

安裝完成后使用 docker --version 命令檢查版本如下:


image.png

啟動docker

sudo systemctl start docker

9紊馏、查看docker版本

docker version

10、顯示docker鏡像蒲犬,現(xiàn)在為空

docker images
REPOSITORY   TAG   IMAGE ID   CREATED   SIZE

接下來安裝Kubernetes

安裝Kubernetes主和工作節(jié)點

1朱监、安裝kubelet kubeadm kubectl (需要掛代理)

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl

開啟Kubernetes服務(wù)并加入系統(tǒng)啟動項

systemctl enable  kubelet
systemctl start kubelet

配置Kubernetes Master主節(jié)點

Kubernetes安裝完成后,需要配置形成一個集群原叮。
1赫编、防火墻上打開Kubernetes必要端口

firewall-cmd --zone=public --permanent --add-port={6443,2379,2380,10250,10251,10252}/tcp

3、允許從另外一個node節(jié)點訪問docker奋隶,把下面的worker-IP-address換換成你自己的IP地址

firewall-cmd --zone=public --permanent --add-rich-rule 'rule family=ipv4 source address=worker-IP-address/32 accept'

4擂送、允許docker容器訪問主機地址

firewall-cmd --zone=public --permanent --add-rich-rule 'rule family=ipv4 source address=172.17.0.0/16 accept'

5、防火墻變更生效

firewall-cmd --reload

6唯欣、Kubernetes上安裝CNI(容器網(wǎng)絡(luò)接口)插件
設(shè)置之前安裝使用Calico:https://docs.projectcalico.org/getting-started/kubernetes/quickstart#overview
簽發(fā)IP地址

kubeadm init --pod-network-cidr 192.168.0.0/16 --image-repository registry.aliyuncs.com/google_containers

執(zhí)行完上述命令后生成以下內(nèi)容


image.png

通過以下樣例嘹吨,創(chuàng)建一個令牌,并把工作node節(jié)點加入到集群中境氢。下面僅是示例(拷貝上面生成內(nèi)容):

kubeadm join 192.168.3.20:6443 --token qq6mk0.iueunemhd3quzd7u \
    --discovery-token-ca-cert-hash sha256:ae3b7314f604916175538fbc9f8f0322f892a0fb260aee4de4b4bb0d46608f99

創(chuàng)建目錄和配置文件

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

7蟀拷、在Master上啟用pod。僅用于演示并不推薦在生產(chǎn)環(huán)境使用(生產(chǎn)環(huán)境用工作節(jié)點萍聊,不在Master上配置)问芬。

kubectl taint nodes --all node-role.kubernetes.io/master-

8、驗證Master節(jié)點是否啟用

kubectl get nodes
NAME  STATUS     ROLES  AGE  VERSION
master  NotReady  master   91s     v1.18.0

配置Kubernetes工作node節(jié)點

1寿桨、開放Kubernetes端口

firewall-cmd --zone=public --permanent --add-port={10250,30000-32767}/tcp

2此衅、加載變更

firewall-cmd --reload

3、使用令牌加入集群(以Master生成內(nèi)容為準)

kubeadm join 192.168.3.20:6443 --token qq6mk0.iueunemhd3quzd7u \
    --discovery-token-ca-cert-hash sha256:ae3b7314f604916175538fbc9f8f0322f892a0fb260aee4de4b4bb0d46608f99 \
--ignore-preflight-errors=all

4亭螟、查看工作節(jié)點是否成功加入
返回Master節(jié)點輸入以下命令

kubectl get nodes
NAME    STATUS   ROLES    AGE   VERSION
master  Ready    master   10m   v1.18.0
worker  Ready    <none>   28s   v1.18.0

完成kubernetes基本設(shè)置

如果配置出錯重新設(shè)置挡鞍,在Master主節(jié)點和工作節(jié)點上執(zhí)行以下命令

kubeadm reset && rm -rf /etc/cni/net.d

在Kubernetes中安裝本地docker鏡像

1、創(chuàng)建工程文件夾goweb媒佣。
2匕累、創(chuàng)建dockerfile文件命名為“Dockerfile"陵刹,文件內(nèi)容如下:

# 使用ubuntu開啟
FROM ubuntu
LABEL maintainer="zhi@zhizhicloud.com"
# 拷貝編譯程序
COPY . /app
WORKDIR /app
# 打開8080端口
EXPOSE 8080
# 運行!
CMD ["./main"]

3默伍、創(chuàng)建一個template文件夾,在文件夾下創(chuàng)建命名為index.html衰琐,文件中填寫如下代碼:

<h1>歡迎使用docker</h1>

<p>這個一個go web docker程序</p>

4也糊、使用go程序編寫一個web服務(wù)

package main

import (
    "fmt"
    "html/template"
    "log"
    "net/http"
)

func IndexHandler(w http.ResponseWriter, r *http.Request) {
    t, err := template.ParseFiles("templates/index.html")
    if err != nil {
        log.Println(err)
    }
    err = t.Execute(w,nil)
    if err != nil {
        log.Println(err)
    }
}

func main() {
    http.HandleFunc("/",IndexHandler)
    fmt.Println("服務(wù)端口:8000")                 //控制臺輸出信息
    err := http.ListenAndServe(":8000", nil) //設(shè)置監(jiān)聽的端口
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

5、編譯程序羡宙、創(chuàng)建鏡像
windows下跨平臺編譯linux文件需要設(shè)置以下變量:

set GOARCH=amd64
set GOOS=linux
go build -o main
$ sudo start docker #開啟docker服務(wù) 
$ sudo docker build -t webserver -f Dockerfile .

執(zhí)行docker images命令查看生成的鏡像文件狸剃,如下圖:


image.png

配置containerd(kubernets 1.20開始不直接支持docker,用containerd替換)

1狗热、配置containerd

sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml

2钞馁、重啟containerd

sudo systemctl restart containerd

6虑省、創(chuàng)建webserver.yml文件,內(nèi)容如下(IP地址替換為Master節(jié)點IP):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webserver2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: webserver2
  template:
    metadata:
      labels:
        app: webserver2
    spec:
      containers:
        - name: webserver2
          image: webserver:latest
          imagePullPolicy: Never
          ports:
          - containerPort: 8000
            protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: webserver2
spec:
  type: NodePort
  ports:
    - port: 8000
      targetPort: 8000
      protocol: TCP
  selector:
    app: webserver2
  externalIPs:
    - 192.168.3.20

執(zhí)行以下命令創(chuàng)建kubernetes容器

kubectl create -f webserver.yml

執(zhí)行結(jié)果如下:


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末僧凰,一起剝皮案震驚了整個濱河市探颈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌训措,老刑警劉巖伪节,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绩鸣,居然都是意外死亡怀大,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門呀闻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來化借,“玉大人,你說我怎么就攤上這事总珠∑流ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵局服,是天一觀的道長钓瞭。 經(jīng)常有香客問我,道長淫奔,這世上最難降的妖魔是什么山涡? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮唆迁,結(jié)果婚禮上鸭丛,老公的妹妹穿的比我還像新娘。我一直安慰自己唐责,他們只是感情好鳞溉,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鼠哥,像睡著了一般熟菲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朴恳,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天抄罕,我揣著相機與錄音,去河邊找鬼于颖。 笑死呆贿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的森渐。 我是一名探鬼主播做入,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼冒晰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了竟块?” 一聲冷哼從身側(cè)響起翩剪,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彩郊,沒想到半個月后前弯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡秫逝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年恕出,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片违帆。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡浙巫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刷后,到底是詐尸還是另有隱情的畴,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布尝胆,位于F島的核電站丧裁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏含衔。R本人自食惡果不足惜煎娇,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贪染。 院中可真熱鬧缓呛,春花似錦、人聲如沸杭隙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痰憎。三九已至票髓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間信殊,已是汗流浹背炬称。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工汁果, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涡拘,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓据德,卻偏偏與公主長得像鳄乏,于是被迫代替她去往敵國和親跷车。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容