一、操作系统环境初始化:
1、节点规划
准备部署一个 一主两从 的 三节点 Kubernetes集群,整体节点规划如下表所示:
主机名 | IP | 角色 |
---|---|---|
k8s-master | 192.168.189.159 | k8s主节点 |
k8s-node-1 | 192.168.189.151 | k8s从节点 |
k8s-node-2 | 192.168.189.152 | k8s从节点 |
下面介绍一下各个节点的软件版本:
所有节点都需要安装以下组件:
2、系统设置:
1)关闭防火墙:
systemctl disable firewalld.service && systemctl stop firewalld.service
2)禁用SELINUX
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX= disabled/' /etc/selinux/config
# 检查是否关闭
cat /etc/selinux/config
3)禁用swap分区(kubernetes不支持swap分区)
swapoff -a
vim /etc/fstab
# 将swap分区删除或者注释掉,或者在安装操作系统时不创建swap分区
4)设置各节点主机名
hostnamectl --static set-hostname k8s-master
hostnamectl --static set-hostname k8s-node-1
hostnamectl --static set-hostname k8s-node-2
5)所有节点 主机名/IP加入 hosts解析
vim /etc/hosts
192.168.189.159 k8s-master
192.168.189.151 k8s-node-1
192.168.189.152 k8s-node-2
6)centos7的用户还需要:
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
7)向系统添加docker和kubernetes软件依赖源
docker-ce.repo (使用阿里云镜像仓库)
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge-debuginfo]
name=Docker CE Edge - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-edge-source]
name=Docker CE Edge - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/edge
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
创建kubernetes.repo文件 (使用阿里云镜像仓库)
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
8)安装docker-ce,每个节点都要安装
yum install docker-ce -y
docker version
#设置开机启动docker和启动docker服务
systemctl enable docker && systemctl start docker
9)安装kubernetes服务,每个节点都要安装
指定版本安装:
yum install kubelet-1.13.1 kubeadm-1.13.1 kubectl-1.13.1 kubernetes-cni-0.6.0
安装最新版:
yum install kubelet kubeadm kubectl -y
查看kubelet的版本:
kubeadm version
kubectl version
设置开机启动kubel、启动kubelet
systemctl enable kubelet
systemctl start kubelet
systemctl restart kubelet
10)初始化Master主节点:
# 可以在初始话master之前下载镜像
kubeadm config images pull
kubeadm init \
--apiserver-advertise-address=192.168.189.159 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.14.2 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
11)Master节点加入Kubernetes集群
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
12)pod网络部署到集群中
wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
docker pull lizhenliang/flannel:v0.11.0-amd64
kubectl apply -f kube-flannel.yml
# 查看核心组件运行状态
kubectl get pods -n kube-system
kubectl get pods --all-namespaces -o wide
13)Node节点加入Kubernetes集群当中
在初始化Master主节点成功后,控制台会有一串 kubeadm join 192.168.189.159:6443......的信息,将其保存下来,那是在node节点加入master节点时执行的语句。
kubeadm join 192.168.189.159:6443 \
--token 9l4mpr.j3gj2beqxpa9dhzm \
--discovery-token-ca-cert-hash sha256:\
1d1eeb6347deef4132c6c3b570fea80345f42a2381795ed198afa60cdd0c1fe0
14)安装dashboard
wget https://raw.githubusercontent.com/kubernetes/dashboard/master\
/aio/deploy/recommended/kubernetes-dashboard.yaml
vim kubernetes-dashboard.yaml
1、修改Dashboard Deployment 的 dashboard的镜像地址
spec:
containers:
- name: kubernetes-dashboard
image: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0
2、修改 Dashboard Service 网络类型
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 30000
创建dashboard
kubectl apply -f kubernetes-dashboard.yaml
15)创建dashboard-serviceaccount的账号,用于kubernetes-dashboard来操作访问
kubectl create serviceaccount dashboard-serviceaccount -n kube-system
kubectl create clusterrolebinding dashboard-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:dashboard-serviceaccount
kubectl get secret -n kube-system |grep dashboard-serviceaccount-token
kubectl describe secret -n kube-system dashboard-serviceaccount-token-5c7v2
16)小技巧:
小技巧,由于后面的操作都是在 kube-system 名称空间中进行,
可以设置个别名:ksys=kubectl -n kube-system
这样就可以使用ksys操作该名称空间了
命令参考:alias ksys='kubectl -n kube-system'
比如查看k8s系统服务外网暴露端口:
可以这样:kubectl get service --namespace=kube-system
也可以简写为这样:ksys get svc
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有